簡體   English   中英

如何在javascript中過濾和修改數組中的每個對象?

[英]How can i filter and modify each object in array in javascript?

我正在開發一個小 webapp,它從 api 接收一組對象,然后在向每個對象添加一些數據並刪除其他對象后在頁面上顯示結果。

如果當前索引元素與下一個元素相同,我已經通過 chechink 嘗試過,但由於某種原因它不起作用。

const initialArray = [
{ x: 'one', y: 'place1'},
{ x: 'one', y: 'place1'},
{ x: 'two', y: 'place2'},
{ x: 'three', y: 'place3'},
{ x: 'three', y: 'place3'},
{ x: 'three', y: 'place3'},
{ x: 'four', y: 'place4'}
]

預期的結果應該是:

let resArray = [
{ x: 'one' , y: 'place1', count: 2},
{ x: 'two', y: 'place2', count: 1 },
{ x: 'three', y: 'place3', count: 3 },
{ x: 'four', y: 'place4', count: 1 }
]

控制台沒有給出任何錯誤,所以這意味着我的算法不正確。 感謝您的支持

你可以使用reduce()

 const initialArray = [ { x: 'one', y: 'place1'}, { x: 'one', y: 'place1'}, { x: 'two', y: 'place2'}, { x: 'three', y: 'place3'}, { x: 'three', y: 'place3'}, { x: 'three', y: 'place3'}, { x: 'four', y: 'place4'} ]; const res = initialArray.reduce((ac,{x,y}) => { let k = `${x}_${y}` if(!ac[k]) ac[k] = {x,y,count:0}; ac[k].count++; return ac; },{}) console.log(Object.values(res))

暫無
暫無

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

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