将数组转换为对象javascript
我有以下数组:将数组转换为对象javascript,javascript,Javascript,我有以下数组: ["recordList", "userList", "lastChanged"] 我想要这样的东西: lastChangedValue = "231231443234"; var object = {}; object = { recordList: { userList: { lastChanged: lastChangedValue } } } 我怎么能做到? 提前感谢。试试这个: var数
["recordList", "userList", "lastChanged"]
我想要这样的东西:
lastChangedValue = "231231443234";
var object = {};
object = {
recordList: {
userList: {
lastChanged: lastChangedValue
}
}
}
我怎么能做到?
提前感谢。试试这个:
var数组=[“记录列表”、“用户列表”、“最后更改”];
var value=“231231443234”;
函数arrayToObject(数组、对象、值){
var ref=对象;
对于(var i=0;i尝试以下方法:
var数组=[“记录列表”、“用户列表”、“最后更改”];
var value=“231231443234”;
函数arrayToObject(数组、对象、值){
var ref=对象;
对于(var i=0;i,您可以迭代属性名称,并在每次迭代中创建一个嵌套级别的新对象:
var props = ["recordList", "userList", "lastChanged"];
var lastChangedValue = "231231443234";
var obj = {}
var nested = obj;
props.forEach(function(o, i) {
nested[o] = i === props.length - 1 ? lastChangedValue : {};
nested = nested[o];
});
console.log(obj);
您可以迭代属性名称,并在每次迭代中创建一个嵌套级别的新对象:
var props = ["recordList", "userList", "lastChanged"];
var lastChangedValue = "231231443234";
var obj = {}
var nested = obj;
props.forEach(function(o, i) {
nested[o] = i === props.length - 1 ? lastChangedValue : {};
nested = nested[o];
});
console.log(obj);
可能有很多方法可以做到这一点,一种方法是使用reduce
var keys = ["recordList", "userList", "lastChanged"];
var temp = keys.slice().reverse(),
lastChangedValue = "231231443234";
var result = temp.reduce( function (obj, val, ind, arr) {
if (ind===0) {
obj[val] = lastChangedValue;
return obj;
} else {
var x = {};
x[val] = obj;
return x;
}
}, {});
console.log(result);
可能有很多方法可以做到这一点,一种方法是使用reduce
var keys = ["recordList", "userList", "lastChanged"];
var temp = keys.slice().reverse(),
lastChangedValue = "231231443234";
var result = temp.reduce( function (obj, val, ind, arr) {
if (ind===0) {
obj[val] = lastChangedValue;
return obj;
} else {
var x = {};
x[val] = obj;
return x;
}
}, {});
console.log(result);
递归求解
var字段=[“记录列表”、“用户列表”、“最后更改”];
lastChangedValue=“231231443234”;
var对象={};
(函数添加字段(o、i、v){
if(i==fields.length-1){
o[字段[i]]=v;
回来
}
o[fields[i]]={};
添加字段(o[fields[i]],++i,v)
})(对象,0,lastChangedValue);
警报(JSON.stringify(object));
递归求解
var字段=[“记录列表”、“用户列表”、“最后更改”];
lastChangedValue=“231231443234”;
var对象={};
(函数添加字段(o、i、v){
if(i==fields.length-1){
o[字段[i]]=v;
回来
}
o[fields[i]]={};
添加字段(o[fields[i]],++i,v)
})(对象,0,lastChangedValue);
警报(JSON.stringify(对象))
嵌套是否一致?因此,您希望每个数组项成为一个对象,其中包含其下的键作为键?嵌套是否一致?因此,您希望每个数组项成为一个对象,其中包含其下的键作为键?请记住,reduce是在IE10中引入的,在IE9或以下版本中不受支持。请记住,reduce是引入的在IE10中为d,在IE9或以下版本中不受支持。