【问题标题】:Why is my function for adding key and incremental values to array of objects returning undefined为什么我的函数向返回未定义的对象数组添加键和增量值
【发布时间】: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


【解决方案1】:

你忘了回arr,兄弟。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 2021-06-21
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多