亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據可能的 ID 屬性列表過濾對象數組?

如何根據可能的 ID 屬性列表過濾對象數組?

慕虎7371278 2023-06-09 10:58:34
我正在嘗試過濾arr2. 如果該元素沒有在 中列出的 ID arr,那么我希望將其刪除。我怎樣才能在 javascript 中做到這一點?var arr= ["a", "b", "d"]var arr2=[{id:"a", value:1},{id:"b", value:2}, {id:"c", value:3}]result:[{id:"a", value:1},{id:"b", value:2}]提前致謝 :)
查看完整描述

4 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

reduce您可以在回調函數中使用并檢查arr includes對象是否id處于迭代狀態。如果是這樣,則將元素添加到累加器數組中


var arr = ["a", "b", "d"]

var arr2 = [{

  id: "a",

  value: 1

}, {

  id: "b",

  value: 2

}, {

  id: "c",

  value: 3

}];


const newData = arr2.reduce((acc, curr) => {

  if (arr.includes(curr.id)) {


    acc.push(curr)

  }

  return acc;

}, []);


console.log(newData)


查看完整回答
反對 回復 2023-06-09
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

使用 filter、reduce 和 include 的速度幾乎是簡單使用循環的兩倍。為了引導您完成它,它所做的就是檢查第二個數組中的每個元素并檢查它的 id 屬性是否在第一個數組中,如果是,它會克隆它。另外,為了將來參考,該標題寫得不好。一個更好的標題是“如何根據可能的 ID 屬性列表過濾對象數組”


var arr= ["a", "b", "d"]

var arr2=[{id:"a", value:1},{id:"b", value:2}, {id:"c", value:3}]

let clone = []

for(let i = 0;i < arr2.length;i++){

    for(let j = 0;j < arr.length; j++) if(arr2[i].id === arr[j]) clone.push(arr2[j])

}

console.log(clone)


查看完整回答
反對 回復 2023-06-09
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

這應該做到


var arr= ["a", "b", "d"]

var arr2=[{id:"a", value:1},{id:"b", value:2}, {id:"c", value:3}]


const filteredArray = arr2.filter(obj => {

  return arr.includes(obj.id)

})


查看完整回答
反對 回復 2023-06-09
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

如果 arr 項目總是字符串,你可以這樣做:


var arr = ["a", "b", "d"];

var arr2 = [{id:"a", value:1},{id:"b", value:2}, {id:"c", value:3}];


let str = arr.join('')

let filtered = arr2.filter(x => str.includes(x.id));

console.log(filtered)


查看完整回答
反對 回復 2023-06-09
  • 4 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號