我目前正在使用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 ]
答案 0 :(得分:2)
您需要在回调内部移动对象的声明。如果在外部,则重复使用该对象,并且由于相同的对象引用,所有元素都包含具有最新更新的同一对象。
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]));