繁体   English   中英

映射并反应对象

[英]map through and object in react

我想使用迭代创建这样的对象:opts = [{{label:1,value:1},{label:4,value:4}]该对象内部的值位于数组portArray = [1,4]中我在写

const portArray = [1,4];
     return {
       portArray.map(value =>
       ({ label: value value: value }))
     };
   });

但它似乎不起作用。 我想念什么,但我不知道。 有任何想法吗?

您提供的代码无效。 它包含非法的return声明。

您可以使用Object.assign获得所需的解决方案。

 const portArray = [1, 4], res = portArray.map(v => Object.assign({}, { label: v, value: v })); console.log(res); 

您的代码缺少分隔对象属性的逗号:

{
  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 :) ----------------^

关于箭头函数的隐式和显式返回值的旁注:

在箭头函数后的对象文字周围加上括号,它们是必需的,以便隐式返回函数的主体表达式。

在箭头函数中使用显式return语句(注意,在函数主体周围添加了花括号):

const newArray = portArray.map(value => {
  return {
    label: value,
    value: value 
  }
};

您提供的代码非常混乱,但是我想我明白了您的问题。 由于map返回一个新数组,因此假设您具有以下数组: var portArray = [1,4]; 您可以使用如下地图:

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}]

您可能应该在这里阅读地图的文档: MDN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM