构建包含多个数组的新数组

xen*_*urs -3 javascript arrays

我构建了几个包含对象的数组,我想要的是构建一个包含每个对象的新数组.这是我的代码:

for(i = 0; i < tabuser.length; i++){
    var urls = [];
    urls.push({
        url: JSON.stringify("https://cubber.zendesk.com/api/v2/users/"+tabuser[i].id+"/tickets/requested.json")
    });
console.log(urls);
Run Code Online (Sandbox Code Playgroud)

这是我的 console.log(urls)

在此输入图像描述

我想要这样的东西:

[ 
    { newurl: 'ajax1.html' },
    { newurl: 'ajax2.html' },
    { newurl: 'ajax3.html' }
]
Run Code Online (Sandbox Code Playgroud)

str*_*str 7

您正在每个循环中重新创建数组.请改用以下内容:

var urls = [];
for(i = 0; i < tabuser.length; i++){
    urls.push({url:JSON.stringify("https://cubber.zendesk.com/api/v2/users/"+tabuser[i].id+"/tickets/requested.json")});
}
console.log(urls);
Run Code Online (Sandbox Code Playgroud)


Tus*_*har 6

之前移动数组声明for.如果保留在for变量中,则将为每次迭代的数组初始化变量,并且将刷新其中的先前数据.

var urls = []; // <--- Move it here

for(i = 0; i < tabuser.length; i++) {
    urls.push({
        url: JSON.stringify("https://cubber.zendesk.com/api/v2/users/" + tabuser[i].id + "/tickets/requested.json")
    });
}

console.log(urls);
Run Code Online (Sandbox Code Playgroud)

作为选项,您也可以使用Array#map.还要注意的是没有必要的JSON.stringify,如果id是原始的.

var urls = tabuser.map(obj => ({
    url: "https://cubber.zendesk.com/api/v2/users/" + obj.id + "/tickets/requested.json"
}));
Run Code Online (Sandbox Code Playgroud)