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

Wil*_*lis 3 jquery json javascript-objects

我想使用.push()Method和create 创建javascript对象Key Value Pair.我试过了,但它不起作用.

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

有解决方案吗

Den*_*ret 8

你似乎想要这个:

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

一些观察:

  • 什么$(this).attr('id')时候可以使用this.id!
  • 你必须在推送它之前初始化数组
  • 如果不能使用动态属性名直接创建对象文字,则必须先创建对象

另一种清洁解决方案是

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

示范

请注意,这会创建一个数组.如果你想要的是一个独特的对象,请使用:

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

示范