我目前正在使用 JavaScript ES6 从 .map 数组方法创建以下输出对象。
const indexAndValue = (arr) => {
return arr.map((elem, index) => {
return { index, elem }
});
}
indexAndValue([22, 33, 44, 55])
输出代码为:
[ { index: 0, elem: 22 },
{ index: 1, elem: 33 },
{ index: 2, elem: 44 },
{ index: 3, elem: 55 } ]
如何在不使用 {} 快捷方式的情况下获得相同的输出?我尝试了以下代码:
const indexAndValue = (arr) => {
let obj = {};
return arr.map((elem, index) => {
return obj[index] = elem;
});
}
indexAndValue([22, 33, 44, 55])
此代码返回错误:
[ 22, 33, 44, 55 ]
最佳答案
您需要将对象的声明移动到回调内部。如果在外部,您可以重用该对象,并且由于相同的对象引用,所有元素都包含相同的对象(具有最新的更新)。
const indexAndValue = (arr) => {
return arr.map((elem, index) => {
var object = {};
object.index = index;
object.elem = elem;
return object;
});
}
console.log(indexAndValue([22, 33, 44, 55]));
关于JavaScript:在给定 .map() 输入参数的情况下创建对象,而不使用 ES6 {} 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907638/