如何向对象添加数组值
2018-08-29
85
我有一个包含几个值的数组。我想迭代数组并将这些值作为值添加到对象中,从具有
null
值的第二个对象元素开始。我不知道如何正确地做到这一点。这是我的代码
let objectParameters = {
"current_lang" : currentLang,
"project_name" : null,
"project_type" : null,
"min_price" : null,
"max_price" : null
}
let arrayValues = ["Project name", "Project Type", 150, 950];
arrayValues .forEach(function(item) {
//Add array value to an object
}
所需输出
let objectParameters = {
"current_lang" : currentLang,
"project_name" : "Project name",
"project_type" : "Project Type",
"min_price" : 150,
"max_price" : 950
}
3个回答
想出了这个:
let objectParameters = {
"current_lang" : "currentLang",
"project_name" : null,
"project_type" : null,
"min_price" : null,
"max_price" : null
};
let arrayValues = ["Project name", "Project Type", 150, 950],
keys = Object.keys(objectParameters);
keys.shift() // Removing the first key, which is not null
keys.forEach( (key,i) => objectParameters[key] = arrayValues[i])
console.log(objectParameters)
Jeremy Thille
2018-08-29
您可以使用
Object.keys(objectParameters)
以数组形式获取对象的所有属性,然后从
arrayValues
中为它们分配值,如下所示:
let objectParameters = {
"current_lang" : "en",
"project_name" : null,
"project_type" : null,
"min_price" : null,
"max_price" : null
}
let arrayValues = ["Project name", "Project Type", 150, 950];
let params = Object.keys(objectParameters);
for(let i = 1; i < params.length; i++) {
objectParameters[params[i]] = arrayValues[i-1];
}
console.log(objectParameters);
Ahorn
2018-08-29
使用 for in 循环 来遍历对象,并使用 shift() 在每次迭代中获取第一个数组元素,在所有情况下我们都依赖于顺序,这可能不是一个好方法。
let objectParameters = {
"current_lang" : "currentLang",
"project_name" : null,
"project_type" : null,
"min_price" : null,
"max_price" : null
}
let arrayValues = ["Project name", "Project Type", 150, 950];
for(let p in objectParameters){
if(!objectParameters[p])
objectParameters[p] = arrayValues.shift()
}
console.log(objectParameters)
我认为在这种情况下没有必要使用
hasOwnProperty
。
Emeeus
2018-08-29