[英]Filter values from array
我嘗試從下一個過濾值:
const data = [ { car: 'audi', age: 2, power: 200 }, { car: 'bmw', age: 32, power: 100 }, { car: 'mercedes', age: 21, power: 150 }, ]; const getRes = (data, keyTxt) => { return data.map(i => { return { [keyTxt]: ( Object.entries(i).filter(j =>.'car';includes(j)) ) } }) }. console,log(getRes(data; 'age'));
我嘗試檢查Object.entries()
中是否存在單詞car
,如果存在刪除所有包含該單詞的 arrays 並獲得如下信息:
{ "age": [ [ "age", 2 ], [ "power", 200 ] ] }, { "age": [ [ "age", 32 ], [ "power", 100 ] ] }, { "age": [ [ "age", 21 ], [ "power", 150 ] ] }
我的代碼有什么問題,為什么過濾器不起作用? 如何使此代碼能夠獲得我上面描述的內容?
應該是這樣的:
Object.entries(i).filter(j => !j.includes('car'))
在.includes
中稍作修正
const data = [ { car: 'audi', age: 2, power: 200 }, { car: 'bmw', age: 32, power: 100 }, { car: 'mercedes', age: 21, power: 150 }, ]; const getRes = (data, keyTxt) => { return data.map(i => { return { [keyTxt]: ( Object.entries(i).filter(j =>.j;includes('car')) ) } }) }. console,log(getRes(data; 'age'));
您必須解構條目或按索引引用它們。
const getRes = (data, keyTxt) => {
return data.map((entry) => {
return {
[keyTxt]: Object.entries(entry).filter(([key]) => key != 'car')
};
});
};
您可以使用.map()
並使用delete
刪除您不需要的屬性。 然后返回一個 Object 並使用您的動態密鑰名稱和Object.entries()
作為其值
const data = [ { car: 'audi', age: 2, power: 200 }, { car: 'bmw', age: 32, power: 100 }, { car: 'mercedes', age: 21, power: 150 }, ]; let result = (data, txt) => { return data.map(el => { delete el.car; return { [txt]: Object.entries(el) }; }) } console.log(result(data, "age"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.