我想獲取串列變數并將其設定為更新串列所在的位置,但我不確定如何。
const list = [{name:'apple'},{name:'apple'},{name:'banana'}];
const updatedList = [{name:'apple', count:2},{name:'banana', count: 1}];
uj5u.com熱心網友回復:
也許這個例子會幫助你?
const list = [{name:'apple'},{name:'apple'},{name:'banana'}];
const updatedList = Object.values(list.reduce(
(map, el) => {
map[el.name] ? map[el.name].count : map[el.name] = { ...el,
count: 1
};
return map;
}, {}
));
console.log(updatedList);
uj5u.com熱心網友回復:
function uptadeLi(list,item,quant) {
// body...
for( i in list){
if (list[i].name === item){
list[i].count = quant
}
}
}
使用該函式,您可以設定串列的每個元素,確保將專案名稱作為字串
uj5u.com熱心網友回復:
const list = [{name:'apple'},{name:'apple'},{name:'banana'}];
const res = list.reduce((sub,value)=>{
const index= sub.findIndex(i => i.name===value.name)
if(index !==-1)
sub[index].count
else
sub.push({name:value.name,count:1})
return sub
},[])
console.log(res)
uj5u.com熱心網友回復:
使用.reduce()方法將每個專案的計數計算為具有唯一鍵的物件:
{ "apple": 2, "banana": 1 }
然后使用Object.entries()將其轉換為以下陣列:
[ ["apple", 2], ["banana", 1] ]
最后,使用.map()方法產生:
[ {"name": "apple", "count": 2}, {"name": "banana", "count": 1} ]
演示
const list = [{name:'apple'},{name:'apple'},{name:'banana'}];
const updatedList = Object.entries(
list.reduce(
(acc,cur) => ({...acc,[cur.name]:(acc[cur.name] || 0) 1}),
{})
)
.map(([name,count]) => ({name,count}));
console.log( updatedList );
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394361.html
標籤:javascript 数组 循环 foreach 数数
上一篇:R函式在每一行增加數字
