0

このフィドルは、キーの値に基づいて配列に含まれていない要素を取得する方法を示しています 9 私の場合id)。

http://jsfiddle.net/wgmz40ow/

このソリューションはここから取得されました: JavaScript のオブジェクトの 2 つの配列の違い

その解決策を見つける前に、単純な for ループを使用して、 内のオブジェクトのみで構成され、 内のオブジェクトのみで構成される配列を作成しようとしaましたb

Array.prototype.filterjavascripts関数を使用せずに誰かが解決策を提供できますか?

編集:私の場合、配列bが常に配列のサブセットである場合を特に処理したかったのaです。

ネストされたループで問題が発生していましたが、内部ループを関数に分割すると、すぐに解決策を得ることができました。

http://jsfiddle.net/xzy9Lyr0/

残念ながら、他の解決策が望ましい理由がわかります.2つの返された配列( http://jsfiddle.net/xzy9Lyr0/2/ )を連結しない限り、真の違いは返されず、 の要素aとない要素のみが返されますb

4

1 に答える 1

0

これは、いたずらの痕跡を含む可能性のある回答です。

学習を通じて理解するための @Jon の呼びかけを拡張するために、シンプルでありながら複雑なソリューションを次に示します。

var bstr = JSON.stringify(b);
for (var i = a.length - 1; i >= 0; i--) {
    if (!~bstr.indexOf(JSON.stringify(a[i]))) {
        c.push(a[i]);
    }
}

楽しみ!

編集:タイプミスを修正。

于 2014-09-04T00:29:58.277 に答える