javascript - 如何基于这个简单对象构建这个复杂的数组

标签 javascript arrays object lodash

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/

相关文章:

javascript - 按特定键值对对象数组排序 | Javascript

javascript - jQuery attr() 不支持属性或方法 'replace'

javascript - Amazon S3 简单 Javascript 客户端文件上传问题

javascript - 在只考虑唯一性的情况下,描述性句子可以与 JavaScript 常量一起使用吗?

arrays - strb w1, [x22,x23] 当x23达到一定值时导致的段错误

java - 静态性能和对象性能哪个最好

javascript - TypeError : window. require 不是函数

arrays - bash 。最快最有效的数组搜索

java - 引用对象的对象的对象

javascript - 对象属性赋值中的语法错误