使用.push()方法的Javascript对象

时间:2013-06-03 11:58:24

标签: jquery json javascript-objects

我想使用.push()方法创建javascript对象并创建Key Value Pair。 我试过了,但它不起作用。

$("input[name^=ang_nama]").each(function() {
   arr_nama.push($(this).attr('id'):$(this).val());
});

任何解决方案?

3 个答案:

答案 0 :(得分:7)

你似乎想要这个:

var arr_nama = [];
$("input[name^=ang_nama]").each(function() {
   var obj = {};
   obj[this.id] = $(this).val();
   arr_nama.push(obj);
});

一些观察结果:

  • 当您可以使用$(this).attr('id')
  • 时,请勿使用this.id
  • 在推送数组之前必须初始化数组
  • 您不能直接使用动态属性名创建对象文字,必须先创建对象

另一个更清洁的解决方案是

var arr_nama = $("input[name^=ang_nama]").map(function() {
   var obj = {};
   obj[this.id] = $(this).val();
   return obj;
}).get();

<强> Demonstration

请注意,这会创建一个数组。如果您想要的是一个唯一的对象,请使用:

var arr_nama = {};
$("input[name^=ang_nama]").each(function() {
   arr_nama[this.id] = $(this).val();
});

<强> Demonstration

答案 1 :(得分:1)

尝试

var obj = {};
obj[$(this).attr('id')] = $(this).val();
arr_nama.push(obj);

答案 2 :(得分:0)

试试这个,在按

的同时添加花括号
$("input[name^=ang_nama]").each(function() {
     arr_nama.push( { $(this).attr('id'):$(this).val() } );
});