JavaScriptのインデックスによってネストされた配列からアイテムを削除します
次のようなオブジェクトのネストされた配列があるとします-
const arr = [ { value: 'some value' }, { array: [ { value: 'some value' }, { array: [ { value: 'some value' }, { value: 'some value' }, ], }, { value: 'some value' }, { array: [ { value: 'some value' }, { array: [ { value: 'delete me' }, { value: 'some value' }, ] }, ], }, ], } ];
最初の引数として1つの配列を取り、2番目の引数としてインデックスの配列を受け取るJavaScript関数を作成する必要があります。
この関数は、配列で指定されたすべてのインデックスのvalueプロパティを削除する必要があります(2番目の引数)。
例
このためのコードは-
になりますconst arr = [ { value: 'some value' }, { array: [ { value: 'some value' }, { array: [ { value: 'some value' }, { value: 'some value' }, ], }, { value: 'some value' }, { array: [ { value: 'some value' }, { array: [ { value: 'delete me' }, { value: 'some value' }, ] }, ], }, ], } ]; const keys = [1, 3, 1, 0]; const getKeys = (arr, keys) => { const recursiveFind = (arr, level) => { const res = []; arr.forEach((el, ind) => { if (keys[level] !== ind) { return res.push(el); }; if (level + 1 !== keys.length && el.array) { res.push({ array: recursiveFind(el.array, level + 1) }); }; }); return res; }; return recursiveFind(arr, 0); }; console.log(JSON.stringify(getKeys(arr, keys), undefined, 4));
出力
そして、コンソールの出力は-
になります[ { "value": "some value" }, { "array": [ { "value": "some value" }, { "array": [ { "value": "some value" }, { "value": "some value" } ] }, { "value": "some value" }, { "array": [ { "value": "some value" }, { "array": [ { "value": "some value" } ] } ] } ] } ]
-
JavaScript Array.from()メソッド
Array.from()は、指定された配列インスタンスから新しい配列オブジェクトを作成します。 以下は、配列from()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docume
-
2つのオブジェクトを比較しながら配列のネストされた値をグループ化-JavaScript
次のJSONオブジェクトがあるとします- const input = { "before": { "device": [ { "id": "1234", "price": "10",