操作对象以创建不同的格式

Manipulate object to make different format

本文关键字:格式 创建 对象 操作      更新时间:2023-09-26

很抱歉这个愚蠢的问题,但我也在寻找解决这个问题的好解决方案:

我有这个对象

var obj = {
    "brand[]" : [1,2,3],
    "model[]" : [1,2,3],
    "varqnt[]" : [1,2,3]
}
现在

我想要的是用它创建一个新的对象/数组(我认为现在不重要),它应该是

var newObj = {
    'row-1': {
        brand[] : 1,
        model[] : 1,
        varqnt[] : 1
    },
    'row-2': {
        brand[] : 2,
        model[] : 2,
        varqnt[] : 2
    },
    'row-3': {
        brand[] : 3,
        model[] : 3,
        varqnt[] : 3
    }
}

棘手的部分是"品牌[]","模型[]","varqnt[]"可能并不都在那里。

我会尝试解释更多...基本上第一个对象来自 url 参数,有 2 个选择框和 1 个输入,但由于我在不同的"地方"使用相同的形式,因此可能不会显示这个 varqnt[](输入)。

不确定是否有人会理解我......但英语不是母语作为借口:P

谢谢,如果我写了一些完全不清楚的东西,对不起:(

您可以通过两个循环来实现此目的。例如:

var obj = {
    "brand[]":  [12, 2,  3],
    "model[]":  [1,  2,  32],
    "varqnt[]": [1,  21, 3]
};
var newObj = {};
Object.keys(obj).forEach(function(key) {
    obj[key].forEach(function(el, i) {
        if (typeof newObj['row-' + i] == "undefined") {
            newObj['row-' + i] = {};
        }
        newObj['row-' + i][key] = el;
    });
});
alert(JSON.stringify(newObj, null, 4));

好吧,你可以做这样的事情并访问对象中的每个元素

var newObj = {};
for (data in obj){
console.log(obj[data])
}