簡體   English   中英

從數組中過濾值

[英]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.

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