使用javascript将关联数组拆分为两个数组
我有很多俱乐部使用javascript将关联数组拆分为两个数组,javascript,arrays,associative-array,Javascript,Arrays,Associative Array,我有很多俱乐部 var clubs =[{ team: {name: "fcb barca", rank: 4}, team: {name: "man utd", rank: 16}, team: {name: "man city", rank: 36}, team: {name: "fcb liverpool", rank: 57} }]; 我需要将其拆分为两个数组,因此预期的结果是 teams["fcb barca", "man utd" , "man
var clubs =[{
team: {name: "fcb barca", rank: 4},
team: {name: "man utd", rank: 16},
team: {name: "man city", rank: 36},
team: {name: "fcb liverpool", rank: 57}
}];
我需要将其拆分为两个数组,因此预期的结果是
teams["fcb barca", "man utd" , "man city", "fcb liverpool"];
rank[4,16,36,57];
我尝试了以下代码,但似乎不起作用
var team = [];
var rank = [];
for(var i = 0; i < clubs.length; i++){
var tempArray1 = teams{{name: clubs[i].name, grade: clubs[i].rank}};
var tempArray2 = teams{name: clubs[i].name, grade: clubs[i].rank};
team.push( tempArray1 );
rank.push( tempArray2 );
};
console.log(team);
console.log(rank);
var团队=[];
var秩=[];
对于(变量i=0;i<0.length;i++){
var tempArray1=球队{{名称:俱乐部[i]。名称、等级:俱乐部[i]。排名};
var tempArray2=球队{名称:俱乐部[i]。名称、等级:俱乐部[i]。排名};
团队推进(临时1);
等级推送(临时排列2);
};
控制台日志(团队);
控制台日志(秩);
我会恨自己在五分钟内就这么做了。
但首先,您的代码目前根本不接近有效
让我们评估一下这里的问题:
clubs[{
team{name: "fcb barca", rank: 4}
team{name: "man utd", rank: 16}
team{name: "man city", rank: 36}
team{name: "fcb liverpool", rank: 57}
}];
首先,俱乐部缺少一个变量声明,如:
var clubs = [
其次,您将俱乐部声明为带有[
的数组,但是,您的数组只包含一个对象,因为您使用{
在这一点之后,有多个问题。第一个问题:
team{
不是有效的javascript对象。但是团队:{
将是。
现在转到下一个问题,您有几个对象没有逗号分隔,彼此紧跟在一起:
team : {name: "fcb barca", rank: 4}
team : {name: "man utd", rank: 16}
应该是这样的:
team : {name: "fcb barca", rank: 4},
team : {name: "man utd", rank: 16}
var clubs = [{
team : {name: "fcb barca", rank: 4},
team : {name: "man utd", rank: 16}
}];
然而,如果将其正确放置,则其将如下所示:
team : {name: "fcb barca", rank: 4},
team : {name: "man utd", rank: 16}
var clubs = [{
team : {name: "fcb barca", rank: 4},
team : {name: "man utd", rank: 16}
}];
现在我们有另一个问题。您有一个数组,clubs
,其中包含一个对象,该对象具有多个同名键team
那是行不通的
您的代码应该如下所示:
let clubs = [
{name: "fcb barca", rank: 4},
{name: "man utd", rank: 16},
{name: "man city", rank: 36},
{name: "fcb liverpool", rank: 57}
];
或者,如果您想成为团队的目标
let clubs = [
{ team: {name: "fcb barca", rank: 4} },
{ team: {name: "man utd", rank: 16} },
{ team: {name: "man city", rank: 36} },
{ team: {name: "fcb liverpool", rank: 57} }
];
然后,当语法正确时,可以如下循环:
let teams = [];
let ranks = [];
clubs.forEach(function(club){
teams.push(club.name);
ranks.push(club.rank);
});
console.log(teams);
console.log(ranks);
如果代码有效,这会有帮助。告诉我们您尝试了什么以及预期的结果是什么。Stackoverflow不是一个免费的代码编写服务,如果您告诉我们您想用代码做什么,请在数组上循环并将其推到其他数组中。抱歉,各位,我已经编辑了这个问题以使其更清楚。希望它有帮助。您应该讨厌f或者在数组上使用
for in
也可以让我竖起大拇指,只是因为你已经解决了这个非常令人困惑的难题,OP's invalid codewell,happy pappy@charlietfl?仅仅建议最佳实践就是我在02:15回答这个问题时,喝醉了应该是好的tbh:P