是否有可能打破“每个”迭代,追加或添加其中一个值,然后继续?

时间:2018-04-06 19:32:00

标签: javascript jquery object nested

是否可以打破“每个”迭代,追加或添加其中一个值,然后继续?

var aKeys = new Array(),
    aValues = new Array(),
    sArray = {};   

 $(input).each(function (index, element) {
            var sKey = $(this).attr('name'),
                sValue = $(this).val();
            aKeys.push(sKey);
            aValues.push(sValue);
        });

如您所见,我首先创建了一些数组和一个名为“sArray”的空对象。然后我通过输入属性推送这些数组中的值。最后,我正在创建我的对象:

    aKeys.forEach(function (v, j) {
        sArray[v] = aValues[j];
    });

    return sArray;

但是这就是事情。我想在其中一个值中添加嵌套对象。我已将该对象存储在另一个变量中。有没有办法追加或添加它?

编辑:

我一直在看这些例子,也许我没有表达得很好。我已经创建了一个对象。我想做的是在我创建的这个对象的一个​​键中追加或存储另一个对象。

1 个答案:

答案 0 :(得分:1)

sArray是一个对象,而不是一个数组。您不需要数组来构建对象。试试这个......



var sObj = {};

$("input").each(function (index, element) {
  sObj[$(this).attr('name')] = $(this).val();
});

// Let's nest another object in there i guess...
var myObj = {"wut-wut": "in the butt"};
sObj.pickles = myObj;

console.log(sObj);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name=one value=1>
<input name=two value=2>
<input name=three value=3>
<input name=four value=4>
&#13;
&#13;
&#13;