我正在尝试创建一个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;
}