Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试推送字段值时无法读取未定义的属性push_Javascript_Jquery - Fatal编程技术网

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