简体   繁体   English

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

[英]How to convert array of string to array of object?

for (var k = 0; k < arr.length; k++){
    var item = new Array();
    item = {
        subtitle: arr[k]
    }
}

How to convert array of string to array of object am using 如何将字符串数组转换为对象数组

for(var i in data){
    arr.push(data[i]);
}

to get array of strings but need to convert array of strings to array of object. 获取字符串数组,但需要将字符串数组转换为对象数组。

Use map when you want to create a new array from a source one by modifying it's values. 当您想通过修改源的值从源数组创建新数组时,请使用map

var arrayOfObjects = data.map(function (item) {
    return { item: item };
});

Two ways: 两种方式:

var arrOfStrs = ["1","2","3","4"];

// first way - using the regular for
var arrObj1 = [];

for(var i = 0 ; i < arrOfStrs.length; i++)
{
    arrObj1.push({item: arrOfStrs[i]});
}

console.log(arrObj1);

// second way - using for...in
var arrObj2 = [];

for(var key in arrOfStrs)
{
    arrObj2.push({item: arrOfStrs[key]});
}

console.log(arrObj2);

JSFIDDLE . JSFIDDLE

Considering you have an array of strings like: 考虑到您有一个字符串数组,例如:

var arr = ["abc", "cde", "fgh"];

you can convert it to array of objects using the following logic: 您可以使用以下逻辑将其转换为对象数组:

var arrOfObjs = new Array(); //this array will hold the objects
var obj = {};   //declaring an empty object
for(var i=0; i<arr.length; i++){  //loop will run for 3 times
    obj = {}; //renewing the object every time to avoid collision
    obj.item = arr[i];  //setting the object property item's value
    arrOfObjs.push(obj);  //pushing the object in the array
}

alert(arrOfObjs[0].item);  //abc
alert(arrOfObjs[1].item);  //cde
alert(arrOfObjs[2].item);  //fgh

See the DEMO here 在这里查看演示

 var arrOfStrs = ["1", "2", "3", "4"]; var data = Object.entries(arrOfStrs).map(([key, value]) => ({ [key]: value })) console.log(data) 

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

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