更改数组的结构

时间:2017-11-16 09:13:03

标签: javascript jquery arrays

我有一个看起来像这样的函数:

let result = [];
$(this).find('.js-readable').each(function(){ 
    if (this._value().length > 0){
        result.push({
            [this.mainId] : this._value()
        });
    };
});
return result

结果我得到一个如下所示的数组:

[{
  "dpr_name3": "3"
}, {
  "dpr_name1": "1"
}, {
  "dpr_name4": "5"
}, {
  "dpr_name2": "2"
}, {
  "dfnc_cur": "181"
}, {
  "doc_dt": "14.11.2017"
}]

如何更改我的功能以达到这个目的:

[{
  "dpr_name3": "3",
  "dpr_name1": "1",
  "dpr_name4": "5",
  "dpr_name2": "2",
  "dfnc_cur": "181",
  "doc_dt": "14.11.2017"
}]

2 个答案:

答案 0 :(得分:1)

你不必进入阵列。您所要做的就是使用空对象作为第一个元素初始化数组,然后在循环时将键值添加到其中:

let result = [{}];
$(this).find('.js-readable').each(function(){ 
    if (this._value().length > 0){
        result[0][this.mainId] = this._value;
    };
});
return result

答案 1 :(得分:0)

您可以将result更改为对象,并将值分配给给定的键。

let result = {};
$(this).find('.js-readable').each(function(){ 
    if (this._value().length > 0){
        result[this.mainId] = this._value()
    };
});

以后使用,可以将结果包装在数组中。