我构建了几个包含对象的数组,我想要的是构建一个包含每个对象的新数组。这是我的代码:
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);
这是我的console.log(urls)
我想要这样的事情:
[
{ newurl: 'ajax1.html' },
{ newurl: 'ajax2.html' },
{ newurl: 'ajax3.html' }
]
答案 0 :(得分: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);
答案 1 :(得分: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);
作为选项,您还可以使用Array#map
。另请注意,如果JSON.stringify
是原始的,则不需要id
。
var urls = tabuser.map(obj => ({
url: "https://cubber.zendesk.com/api/v2/users/" + obj.id + "/tickets/requested.json"
}));
答案 2 :(得分:3)
我想你想要这个:
display: flex
您在控制台中看到的实际上是列出的对象,您只需要通过单击[对象]旁边的向下箭头展开它们
答案 3 :(得分:2)
您可以轻松地将当前数组映射到新数组,如下所示:
var urls = tabuser.map(function(t){
return { newurl: "https://cubber.zendesk.com/api/v2/users/"+t.id+"/tickets/requested.json" };
});
console.log(JSON.stringify(urls))
答案 4 :(得分:2)
如果使用map
var urls = tabuser.map(function(user){
return {
url: JSON.stringify("https://cubber.zendesk.com/api/v2/users/" + user.id + "/tickets/requested.json")
};
});
答案 5 :(得分:1)
将其重写为
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);