繁体   English   中英

如何在JavaScript中将字符串数组转换为对象数组?

[英]How can I convert an array of strings to an array of objects in JavaScript?

我有这个数组:

myArray = ["AAA","BBB",...,"ZZZ"];

我想将其转换为对象数组 像这样:

myArray = [
    {
        "Id": "111",
        "Value": "AAA"
    },
    ....
    {
        "Id": "111",
        "Value": "ZZZ"
    },
];

我尝试过使用map方法,如下所示:

myArray.map(str => {
    let obj = {};
    obj['Id'] = '111';
    obj['Value'] = str;
});

但是 console.log(myArray)输出以下内容:

未定义

您需要从映射器函数返回结果。

let myNewArray = myArray.map( str => {
      let obj = {};
      obj['Id'] = '111' ;
      obj['Value'] = str ;
      return obj;
});
// or 
let myNewArray = myArray.map( str =>  ({Id:111,Value:str}) );
// parenthesis are needed to remove the ambiguity with `{}`
console.log(myNewArray);

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Using_map_to_reformat_objects_in_an_array

这是使用Array#map的干净ES6一线版

 const data = myArray = ["AAA","BBB","ZZZ"]; let result = data.map(e => ({'Id': '111', 'Value': e})); console.log(result); 

您需要将结果返回到新变量或现有变量中,因为map创建了一个新数组,并且不会更改您要遍历的数组。

    const myArrayOfObjects = myArray.map( str => {
      let obj = {};
      obj['Id'] = '111' ;
      obj['Value'] = str ;
      return obj;
});

暂无
暂无

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

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