我想使用iteratio创建这样的对象: opts = [{label:1,value:1},{label:4,value:4}] 此对象内的值在数组portArray = [1,4]内 我正在写
MyProperty
但它似乎不起作用。我错过了一些东西,但我不知道是什么。有任何想法吗?
答案 0 :(得分:2)
您提供的代码无效。它包含非法的return
语句。
您可以使用以下方法获得所需的解决方案: Object.assign
。
const portArray = [1, 4],
res = portArray.map(v => Object.assign({}, { label: v, value: v }));
console.log(res);

答案 1 :(得分:1)
您的代码缺少逗号分隔对象属性:
{
label: value, // <-- comma between properties
value: value
}
此外,Array#map
将返回一个新数组,其中包含映射到对象的值,您可以将这些值存储在局部变量中:
const portArray = [1,4];
const newArray = portArray.map(value =>({ label: value, value: value }));
// remember this comma :) ----------------^
关于箭头函数的隐式vs显式返回值的附注:
箭头函数后面的对象文字周围的括号,它们是必需的,以便隐式返回函数的正文表达式。
在箭头函数中使用显式返回语句(注意在函数体周围添加花括号):
const newArray = portArray.map(value => {
return {
label: value,
value: value
}
};
答案 2 :(得分:1)
您提供的代码非常令人困惑,但我认为我明白了您的问题。由于map
返回一个新数组,假设你有这个数组:var portArray = [1,4];
你可以像这样使用map:
function manipulateArray(data) {
return data.map((value) => {
return {label: value, value: value};
}
}
var newArray = manipulateArray(portArray);
这种方式newArray
将等于[{label:1, value:1}, {label:4, value:4}]
。
你应该阅读地图&#39;文档:MDN