Cai*_*ifa 13 javascript associative-array
我想创建一个函数createAssociativeArray,它将返回两个参数:string和object,像这样:
function createAssociativeArray(string, object) {
//...
}
Run Code Online (Sandbox Code Playgroud)
最后一项string应该获取object数据.查看使用/返回示例:
createAssociativeArray('key1.key2.key3', {
data1: 1,
data2: 2,
data3: 3
});
// key1: {
// key2: {
// key3: {
// data1: 1,
// data2: 2,
// data3: 3
// }
// }
// }
Run Code Online (Sandbox Code Playgroud)
什么是最简单,最健壮的方法?
使用eval不是可能的.
我尝试了什么:
function createAssociativeArray(string, object) {
string = string.split('.');
return string.reduce(function(_object, _target, i) {
_object[_target] = (i + 1 === string.length ? object : {});
return _object;
}, {});
}
Run Code Online (Sandbox Code Playgroud)
它没有产生预期的结果,因为对象被重置{}.
[ JSFiddle ]
小智 5
这是我想出的:
function createAssociativeArray(string, object) {
var parts = string.split('.');
var last = parts[parts.length - 1];
var tree = {};
var node = parts.slice(0, -1).reduce(function (memo, current) {
return (memo[current] = {});
}, tree);
node[last] = object;
return tree;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1640 次 |
| 最近记录: |