是否转换为字符串数组中的命名值



我正在尝试创建一个Javascript对象。此对象的命名值基于字符串数组。

所以我想转换这样一个数组:

var arr = ["name1", "name2", "name3"]

进入这样的对象:

var obj = {
name1: "",
name2: "",
name3: ""
}

很明显,我不能简单地提取前面变量的名称来获得参数的名称,因为名称似乎是硬编码的。任何类似于我的问题都会回答如何填写值,而不是名称。我想,如果情况越来越糟,我可以使用";eval";函数,但这似乎给看似相对简单的东西增加了很多复杂性。

只需使用键/值映射数组,然后从条目中创建一个对象。

const
array = ["name1", "name2", "name3"],
object = Object.fromEntries(array.map(k => [k, '']));
console.log(object);

您可以使用Array.reduce((

var arr = ["name1", "name2", "name3"]
var obj = arr.reduce((acc, cur) => {
acc[cur] = "";
return acc;
}, {});
console.log(obj);

console.log(
Object.fromEntries(
["name1", "name2", "name3"].map(name => [name, ''])
)
)

您可以使用for of并构造如下对象:

const arr = ["name1", "name2", "name3"]
let obj
for(const value of arr) {
obj[value] = ''
}
console.log(obj)

或者你可以使用reduce:

const arr = ["name1", "name2", "name3"]
const obj = arr.reduce((acc, cur) => {
acc[cur] = ''
}, {})

检查此项:Javascript字符串数组到对象

或者试试这个,从字符串数组转换成javascript对象中找到:

function strings_to_object(array) {
// Initialize new empty array
var objects = [];

// Loop through the array
for (var i = 0; i < array.length; i++) {
// Create the object in the format you want
var obj = {array[i]};
// Add it to the array
objects.push(obj);
}
// Return the new array
return objects;
}

最新更新