http://jsfiddle.net/leongaban/tuhgns3q/
我的简单对象:
{
portfolio: "AAPL",
t1_tag1: "1111",
t2_tag1: "2222",
t3_tag1: "3333",
ticker1: "AA",
ticker2: "GOOG",
ticker3: "AAPL"
}
下面是所需的最终结果。包含对象数组的对象数组:
[
0:Object {
tags: [
0:Object {
t1_tag1: "1111"
}
]
ticker: ticker1
},
1:Object {
tags: [
0:Object {
t2_tag2: "2222"
}
]
ticker: ticker2
},
3:Object {
tags: [
0:Object {
t3_tag3: "3333"
}
]
ticker: ticker3
}
]
是否有更简单的方法可以使用 _lodash 来实现此目的?
最佳答案
这是我仅使用普通 JavaScript 而没有使用 lodash 或下划线得出的结果:
function expand(simple) {
var outerArray = [], innerArray,
outerIndex = 1, innerIndex,
outerObject, innerObject;
while (("ticker" + outerIndex) in simple) {
innerArray = [];
innerIndex = 1;
while (("t" + outerIndex + "_tag" + innerIndex) in simple) {
innerObject = {};
innerObject["t" + outerIndex + "_tag" + innerIndex] = simple["t" + outerIndex + "_tag" + innerIndex];
innerArray.push(innerObject);
innerIndex++;
}
outerObject = {
tags: innerArray,
ticker: simple["ticker" + outerIndex]
};
outerArray.push(outerObject);
outerIndex++;
}
return outerArray;
}
console.log(expand({
portfolio: "AAPL",
t1_tag1: "1111",
t2_tag1: "2222",
t3_tag1: "3333",
ticker1: "AA",
ticker2: "GOOG",
ticker3: "AAPL"
}));
关于javascript - 如何基于这个简单对象构建这个复杂的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925437/