Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 在数组中添加索引_Javascript_Arrays - Fatal编程技术网

Javascript 在数组中添加索引

Javascript 在数组中添加索引,javascript,arrays,Javascript,Arrays,我想在数组中添加索引: 这是我的循环 for(j=0; j< data.data.tickets.length; j++) { var created_at = data.data.tickets[j].created_at; var tickettitle = data.data.tickets[j].subject; cleartab[requesterid]['tickets'] = [{"created":created_at, "titre":tickettitle}

我想在数组中添加索引:

这是我的循环

for(j=0; j< data.data.tickets.length; j++) {
  var created_at = data.data.tickets[j].created_at;
  var tickettitle = data.data.tickets[j].subject;
  cleartab[requesterid]['tickets'] = [{"created":created_at, "titre":tickettitle}];   
}
for(j=0;j
它给了我这个数组:


问题是,
tickets[]
中的密钥总是被重写的,所以它不是迭代的。因为我的用户有很多票证,所以每个索引都是一个票证,每个票证都有一个日期和标题。

问题是,在for循环的每次迭代中,您都要覆盖
票证
数组。试试这个

         for(j=0; j< data.data.tickets.length ;j++){
            var created_at = data.data.tickets[j].created_at;
            var tickettitle = data.data.tickets[j].subject;
            // Making sure that 'tickets' will be an array
            var arrayRef = cleartab[requesterid]['tickets'] || [];
            cleartab[requesterid]['tickets'] = arrayRef.concat([{"created":created_at,"titre":tickettitle}]);
         }
for(j=0;j
这将对您有效

<script>
var cleartab ={tickets :[]};
$.each(data.data.tickets, function(key,val) {
    var created_at = val.created_at;
    var tickettitle = val.subject;
    cleartab.tickets.push({"created":created_at, "title":tickettitle});
});
console.log(cleartab) 
</script>

var cleartab={tickets:[]};
$.each(data.data.tickets,函数(key,val){
var created_at=val.created_at;
var tickettitle=val.subject;
cleartab.tickets.push({“created”:created_at,“title”:tickettitle});
});
console.log(cleartab)

如果有对象数组,它们总是有索引。在.forEach()中,有使用三个参数(元素、索引、数组)调用的回调,什么是“json数组”“?它说concat没有定义很抱歉,我是javascript新手,我不知道这是否重要,但这段代码在一个角度项目中这是因为在循环的第一次迭代中,数组还不存在。更容易理解的解决方法(但可以说不是最优雅的方法)是在运行for循环之前初始化数组。我已经更新了代码。这不可能在循环之前声明我的数组,因为:
var requesterid=data.data.tickets[j].requester\u id需要循环存在吗?还有其他方法吗?非常感谢它的工作!请你解释一下你的代码好吗?我想理解,而不仅仅是复制你的代码:)管道在做什么?就像我说的,问题是:1-在for循环的每个iterration上,你在这一行创建了一个新数组:
cleartab[requesterid]['tickets']=[{“created”:created_at,“titre”:tickettitle}解决方案的作用是将新值“推送”到数组中。2-在循环的第一次运行中,尚未创建数组,因此使用:
var arrayRef=cleartab[requesterid]['tickets']|【】我们确保如果数组还不存在,我们会创建一个新的数组。这有意义吗?