如何使用lo-dash
获取数组并将其转换为此数组采用数组
["BBC", "url", false, "Apple", "url", false, "Google", "url", false]
输出:
[
{
"title" : "BBC",
"href" : "url",
"window_check": false
},
{
"title" : "Apple",
"href" : "url",
"window_check": false},
{
"title" : "Google",
"href" : "url",
"window_check": false
},
];
目前我这样做但失败了。
var array123 = ["BBC", "url", false, "Apple", "url", false, "Google", "url", false];
_.reduce(array123, function(result, value, key) { result[key]=value; return result;}, {});
我明白了。
{0: "BBC", 1: "url", 2: false, 3: "Apple", 4: "url", 5: false, 6: "Google", 7: "url", 8: false}
答案 0 :(得分:2)
我根本不会使用下划线/ lodash:
var result = [];
for (var i=0; i<array123.length; )
result.push({
"title": array123[i++],
"href": array123[i++],
"window_check": array123[i++]
});
如果您想采用功能性方法,请定义some chunkN
method,然后使用
var result = _.chain(array123).chunkN(3).map(function(chunk) {
return {
"title": chunk[0],
"href": chunk[1],
"window_check": chunk[2]
}
}).value();
答案 1 :(得分:1)
有你去
var keys = ['title','href','window_check'];
var out = _.reduce(array123, function(result, value, idx) {
if (idx % keys.length == 0)
result.push({});
result[result.length - 1][keys[idx % keys.length]] = value;
return result;
},[]);
如果你想为每个带有对象的X项创建新对象,你的逻辑实际上需要包含它。