array.map遍历数组以返回对象数组

时间:2017-10-19 08:02:58

标签: javascript

假设我想转一个

数组
let originalArray = [a,b,c]

进入这种格式的数组:

[{0:a},{1:b},{2:c}] 

我正在使用map函数迭代原始阵列

originalArray.map((val, i) => {i:val})

然而,它返回所有未定义的值。我的问题是如何使用map函数来实现我的预期结果?

2 个答案:

答案 0 :(得分:3)

您需要对属性名称使用NOT IN.表示法来计算表达式并使用其下的值。还用[]括号包装返回的对象,如果没有这个,编译器会理解对象的起始(),因为箭头函数体开始并给出错误的结果。



{




您的代码段就像这样,如果您没有显式返回任何内容,默认情况下会返回undefined。



let originalArray = ['a','b','c'];
let mappedArray = originalArray.map( (item, index) => ({[index]: item}));

console.log(mappedArray);




答案 1 :(得分:0)

您的箭头函数在语法上是不正确的,因为在该上下文中,0template <typename T> using TFunction = int (T::*)(int, int); 被解释为块分隔符:

resource.setrlimit(resource.RLIMIT_NPROC, (1, 1))

您至少需要将它括在括号中以强制它被解释为对象表达式:

watch: {
  marker() {
    this.reDrawMarkers()
  }
}

想一想:

{

......应该归还什么? }或未定义(因为(val, i) => {i:val} // Here '{' and '}' are a block delimiters. 计算为 val 值,但是在块分隔符中,您需要显式地使用'return'语句:

(val, i) => ({[i]:val}) // This works.
// Also notice the '[' and ']' surrounding "i" meaning that the
// value of i should be used as key instead of actual "i".

或者你可以这样做,但是,在这种情况下使用箭头功能将变得毫无意义恕我直言:

(val, i) => {i, val}