【发布时间】:2021-06-21 15:13:15
【问题描述】:
关于我之前的问题:Add key and incremental values to array of objects
@ran.t 的解决方案效果很好。但是现在我正在尝试编写一个函数来重用该解决方案,我变得不确定。
无功能:
let arr_obj = [
{
name: 'Hermione',
order: 'books',
},
{
name: 'Harry',
order: 'brooms',
},
{
name: 'Ron',
order: 'food',
}
];
let order_size = 100;
arr_obj.forEach(d => {
d['order_size'] = order_size;
order_size -= 25;
});
console.log(arr_obj)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
使用函数调用(需要可重用性):
let arr_obj = [
{
name: 'Hermione',
order: 'books',
},
{
name: 'Harry',
order: 'brooms',
},
{
name: 'Ron',
order: 'food',
}
];
let order_size = 100;
const myFnc = (arr) => {
arr.forEach(d => {
d['order_size'] = order_size;
order_size -= 25;
});
}
console.log(myFnc(arr_obj));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
当我所做的只是将 forEach 放入函数中时,为什么会得到 undefined?
【问题讨论】:
-
myFnc没有return语句,它修改了参数数组。 -
将
return arr;放在myFnc的末尾或使用console.log(arr_obj) -
@Barmar 谢谢,如果您将其添加为答案,我可以接受
-
有人已经发布了答案。
标签: javascript jquery arrays function ecmascript-6