Javascript 尝试推送字段值时无法读取未定义的属性push
当前代码如下所示Javascript 尝试推送字段值时无法读取未定义的属性push,javascript,jquery,Javascript,Jquery,当前代码如下所示 var child_tids = []; $('.term-selection').each(function(index){ var field = $(this).attr('field'); child_tids.push($(this).val()); }); 我需要根据属性“field”将其隔离 所以我试了下面的方法 var child_tids = []; $('.term-selecti
var child_tids = [];
$('.term-selection').each(function(index){
var field = $(this).attr('field');
child_tids.push($(this).val());
});
我需要根据属性“field”将其隔离
所以我试了下面的方法
var child_tids = [];
$('.term-selection').each(function(index){
var field = $(this).attr('field');
child_tids[field].push($(this).val());
});
但它在控制台中给了我一个错误“无法读取未定义的属性push,如何实现它?
child\u tids
需要是一个对象,然后为您可以尝试的每个字段创建一个数组:
var child_tids = {};
$('.term-selection').each(function(index){
var field = $(this).attr('field');
if (!child_tids[field]) child_tids[field] = [];
child_tids[field].push($(this).val());
});
您需要的是一个对象,而不是数组。请使用类似于:
var child_tids={};
$('.term selection')。每个(函数(索引){
var field=$(this.attr('field');
如果(子项的类型[field]!=“object”)子项[field]=[];
child_tids[field].push($(this.val());
});
使用对象,而不是数组。数组由数字索引。您尝试执行的用例似乎试图使用字符串键来标识值。var child_tids={};child_tids[field]=value
我可以在您的答案中添加一些语法糖吗?:P