Array.spliceは機能しますが、Lodash.removeは機能しません

コリン・リカルド

を使用して配列からアイテムを削除していますmongooseいくつかのコード:

const { find, remove } = require('lodash');

....

UserSchema.methods.deleteItem = async function (id) {
  const user = this;
  const item = find(user.items, i => i.id === id);
  const idx = user.items.indexOf(item);
  user.items.splice(idx, 1);

  // remove(user.items, i => i.id === id);

  try {
    await user.save();
    return item;
  } catch (err) {
    throw new Error(err);
  }
};

上記のコードではsplice()、正しく機能するを使用しています。ただし、lodashremoveは機能しません。ドキュメント.remove()は、配列を直接変更すると記載さていますが、なぜここで機能しないのですか?

Vlad274

つまり、MongooseとLodashは互換性がないようです(少なくともこのユースケースでは)。


マングースArray.spliceは独自の方法でラップします。

マングースソースの568行目を参照してください

ただし、Lodashは明示的にデフォルトを呼び出しますArray.splice。これにより、ラップされたバージョンが回避されます。

Lodashソース7847、7864、3857、3866、1484、1435行を(順番に)参照してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ReactsetStateはarray.prototype.spliceでは機能しません

分類Dev

Array.prototype.splice.call-querySelectorAll( '。className')では機能しません

分類Dev

Array.remove() は onClickListener() で 2 回以上機能しません

分類Dev

array_splice()がループ内で正しく機能していません

分類Dev

Array.spliceは、両方の状態サブ配列で機能します

分類Dev

array.findはBabelでは機能しません

分類Dev

woocommerce remove_actionは機能しませんが、addは機能します

分類Dev

私のArray <byte> ^関数は前のプロジェクトでは機能しますが、最近のプロジェクトでは機能しません

分類Dev

php array_filterは関数で機能しますが、メソッドとしてクラス内では機能しません

分類Dev

isset()またはarray_key_exists()は$ _POSTでは機能しません

分類Dev

numpy.linalg.eighは、sym.lambdify()のnumpy配列で機能しますが、np.array()では機能しません。

分類Dev

array.forEachは機能しますが、内部に別のネストを入れた場合は機能しません

分類Dev

exists()は機能しませんが、getAbsolutePath()は機能します

分類Dev

GCCは機能しませんが、G ++は機能します

分類Dev

GETは機能しますが、POSTは機能しません

分類Dev

ThreadPoolExecutorは機能しますが、ProcessPoolExecutorは機能しません

分類Dev

constは機能しますが、constexprは機能しません

分類Dev

querySelectorは機能しますが、querySelectorAllは機能しません

分類Dev

Coutは機能しますが、ofstreamは機能しません

分類Dev

scpは機能しませんが、sshは機能します

分類Dev

$ watchは機能しますが、$ watchCollectionは機能しません

分類Dev

typedefは機能しますが、 'using ='は機能しません

分類Dev

Curlは機能しますが、urllibは機能しません

分類Dev

$ _REQUESTは機能しますが、$ _ POSTは機能しません-

分類Dev

INは機能しますが、NOTINは機能しません

分類Dev

SSHは機能しますが、SFTPは機能しません

分類Dev

lpは機能しますが、lprは機能しません

分類Dev

ntpstatは機能しますが、ntpqは機能しません

分類Dev

php ajaxは機能しますが、機能しません

Related 関連記事

  1. 1

    ReactsetStateはarray.prototype.spliceでは機能しません

  2. 2

    Array.prototype.splice.call-querySelectorAll( '。className')では機能しません

  3. 3

    Array.remove() は onClickListener() で 2 回以上機能しません

  4. 4

    array_splice()がループ内で正しく機能していません

  5. 5

    Array.spliceは、両方の状態サブ配列で機能します

  6. 6

    array.findはBabelでは機能しません

  7. 7

    woocommerce remove_actionは機能しませんが、addは機能します

  8. 8

    私のArray <byte> ^関数は前のプロジェクトでは機能しますが、最近のプロジェクトでは機能しません

  9. 9

    php array_filterは関数で機能しますが、メソッドとしてクラス内では機能しません

  10. 10

    isset()またはarray_key_exists()は$ _POSTでは機能しません

  11. 11

    numpy.linalg.eighは、sym.lambdify()のnumpy配列で機能しますが、np.array()では機能しません。

  12. 12

    array.forEachは機能しますが、内部に別のネストを入れた場合は機能しません

  13. 13

    exists()は機能しませんが、getAbsolutePath()は機能します

  14. 14

    GCCは機能しませんが、G ++は機能します

  15. 15

    GETは機能しますが、POSTは機能しません

  16. 16

    ThreadPoolExecutorは機能しますが、ProcessPoolExecutorは機能しません

  17. 17

    constは機能しますが、constexprは機能しません

  18. 18

    querySelectorは機能しますが、querySelectorAllは機能しません

  19. 19

    Coutは機能しますが、ofstreamは機能しません

  20. 20

    scpは機能しませんが、sshは機能します

  21. 21

    $ watchは機能しますが、$ watchCollectionは機能しません

  22. 22

    typedefは機能しますが、 'using ='は機能しません

  23. 23

    Curlは機能しますが、urllibは機能しません

  24. 24

    $ _REQUESTは機能しますが、$ _ POSTは機能しません-

  25. 25

    INは機能しますが、NOTINは機能しません

  26. 26

    SSHは機能しますが、SFTPは機能しません

  27. 27

    lpは機能しますが、lprは機能しません

  28. 28

    ntpstatは機能しますが、ntpqは機能しません

  29. 29

    php ajaxは機能しますが、機能しません

ホットタグ

アーカイブ