簡體   English   中英

根據數組順序過濾 Object 屬性

[英]Filter Object property based on array with order of array

我有一個數組

const arr = ['a', 'b', 'd', 'c', 'e'];

API 發送此數據

const data ={a:'a', b:'b', c:'c', e:'e', f:'f'}

有時鍵也會丟失,但數組鍵應始終存在於最終結果中。

output 應該是{a:'a', b:'b', d:'', c:'c', e:'e'} 請幫助我使用 ES6 並給我一個解釋。 我正在使用 reactjs16.9。 在這個給定的情況下,object d 缺失,因此它應該用“”初始化。 如果所有密鑰都存在,則應刪除 API 中的額外密鑰。

您可以只使用想要的密鑰來迭代密鑰並構建新的 object。

在映射回調內部,使用in運算符條件(三元)運算符?:檢查鍵是否存在,用於從 object 或占位符' '獲取未知屬性的值。

結果是帶有 Object.fromEntries 的Object.fromEntries或簡單數組。

 const keys = ['a', 'b', 'd', 'c', 'e'], data = {a: 'a', b: 'b', c: 'c', e: 'e', f: 'f' }, result = Object.fromEntries(keys.map(k => [k, k in data? data[k]: ' '])), onlyValues = keys.map(k => k in data? data[k]: ' '); console.log(result); console.log(onlyValues);
 .as-console-wrapper { max-height: 100%;important: top; 0; }

也許這個?

使用 || 如果沒有可用的條目,則使用空間

 const arr = ['a', 'b', 'd', 'c', 'e']; const data = {a:'a', b:'b', c:'c', e:'e', f:'f'}; let newObj = {}; let newArr = []; arr.forEach(item => { newObj[item] = data[item] || " "; newArr.push( data[item] || " "); }) console.log(newObj); console.log(newArr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM