【发布时间】:2018-07-18 23:12:44
【问题描述】:
考虑以下示例。一个数组包含在一个对象中,我正在使用 map 来修改数组的内容。
let temp = {
name:'Scott',
arr: [1, 2, 3, 4],
};
console.log(temp);
let promise = temp.arr.map((obj) => {
return obj*5;
});
Promise.all(promise).then( (temp) => {
console.log(temp);
});
输出是:
{ name:'Scott' ,arr: [ 1, 2, 3, 4 ] }
[ 5, 10, 15, 20 ]
有人可以解释一下为什么要修改原始对象吗?
【问题讨论】:
-
你知道箭头函数参数和之前声明的变量同名吗?
-
只要给你的变量起合理的名字,再次运行它并记录原始的
temp:jsfiddle.net/p682uzov -
不应该理想地自行修改 temp 的内容吗?或者修改后的数组是否应该作为 promise.all 上数组函数的参数
-
通过数字数组映射将创建一个全新的数字数组,该数组未链接到原始引用,如果预期行为是改变属性 arr 中的数组,请使用简单的 forEach 或 for 循环遍历项目并更改它们的值。
标签: javascript arrays node.js