JavaScript:在给定 .map() 输入参数的情况下创建对象,而不使用 ES6 {} 快捷方式

标签 javascript function object arguments key-value

我目前正在使用 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/

相关文章:

php - 同时选择+文本输入表单字段?

javascript - Angularjs 中两个按钮的不同验证?

c - 为什么此代码不会打印项目列表?我知道这与返回有关

javascript - 函数在变量中,传递参数

javascript - 如果在对象中找到,则使用 jQuery 中的另一个属性

model-view-controller - 将 ActionScript 对象转换为模型

添加三个输入的 Javascript 函数

javascript - 如何使用 JavaScript 检查 html 元标记是否存在?

javascript - 有没有一种方法可以从 React Redux 中的一个操作调用另一个操作

javascript - 如何访问Sound Manager2创建的声音对象?