假设我想转一个
数组let originalArray = [a,b,c]
进入这种格式的数组:
[{0:a},{1:b},{2:c}]
我正在使用map函数迭代原始阵列
originalArray.map((val, i) => {i:val})
然而,它返回所有未定义的值。我的问题是如何使用map函数来实现我的预期结果?
答案 0 :(得分:3)
您需要对属性名称使用NOT IN.
表示法来计算表达式并使用其下的值。还用[]
括号包装返回的对象,如果没有这个,编译器会理解对象的起始()
,因为箭头函数体开始并给出错误的结果。
{

您的代码段就像这样,如果您没有显式返回任何内容,默认情况下会返回undefined。
let originalArray = ['a','b','c'];
let mappedArray = originalArray.map( (item, index) => ({[index]: item}));
console.log(mappedArray);

答案 1 :(得分:0)
您的箭头函数在语法上是不正确的,因为在该上下文中,0
和template <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}