我试图从这个对象的对象中仅提取团队名称,但无法做到这一点
我已经尝试过Object.keys(data),但它只显示比赛的年份,我也尝试过Object.values(data),但它显示的输出中既有球队名称,也有与之相关的值。
{ '2008':
{ 'Chennai Super Kings': 9,
'Delhi Daredevils': 7,
'Royal Challengers Bangalore': 4,
'Kolkata Knight Riders': 5,
'Rajasthan Royals': 13,
'Kings XI Punjab': 10,
'Deccan Chargers': 2,
'Mumbai Indians': 7 },
'2009':
{ 'Royal Challengers Bangalore': 9,
'Delhi Daredevils': 10,
'Deccan Chargers': 9,
'Chennai Super Kings': 8,
'Kolkata Knight Riders': 3,
'Rajasthan Royals': 6,
'Kings XI Punjab': 7,
'Mumbai Indians': 4 },
'2010':
{ 'Mumbai Indians': 11,
'Delhi Daredevils': 7,
'Kolkata Knight Riders': 6,
'Deccan Chargers': 8,
'Royal Challengers Bangalore': 8,
'Chennai Super Kings': 9,
'Rajasthan Royals': 6,
'Kings XI Punjab': 4 } }发布于 2019-09-06 13:49:50
如果你使用的是普通的JS (没有句点、下划线等),你可以得到这样的团队列表
var obj = {/* your object here */};
// for browsers that have flat() support
var onlyTeams = Object.values(obj).map(Object.keys).flat()
// for browsers without flat() support
var onlyTeams = Object.values(obj).map(Object.keys).reduce((acc, val) => acc.concat(val), []);如果你想对它们进行重复数据删除,你可以这样做
var dedupedTeams = Array.from(new Set(onlyTeams))发布于 2019-09-06 13:42:52
由于团队名称位于嵌套对象中,因此应在map()中使用Object.keys()
var obj = { '2008':
{ 'Chennai Super Kings': 9,
'Delhi Daredevils': 7,
'Royal Challengers Bangalore': 4,
'Kolkata Knight Riders': 5,
'Rajasthan Royals': 13,
'Kings XI Punjab': 10,
'Deccan Chargers': 2,
'Mumbai Indians': 7 },
'2009':
{ 'Royal Challengers Bangalore': 9,
'Delhi Daredevils': 10,
'Deccan Chargers': 9,
'Chennai Super Kings': 8,
'Kolkata Knight Riders': 3,
'Rajasthan Royals': 6,
'Kings XI Punjab': 7,
'Mumbai Indians': 4 },
'2010':
{ 'Mumbai Indians': 11,
'Delhi Daredevils': 7,
'Kolkata Knight Riders': 6,
'Deccan Chargers': 8,
'Royal Challengers Bangalore': 8,
'Chennai Super Kings': 9,
'Rajasthan Royals': 6,
'Kings XI Punjab': 4 } }
var teams = Object.values(obj).map(o => Object.keys(o));
console.log(teams);
请注意:如果您在单个数组中的团队,您必须使用flat()。
var teams = Object.values(obj).map(o => Object.keys(o)).flat();发布于 2019-09-06 13:44:34
您可以遍历第一级对象,然后遍历它们的键,以获得团队名称:
data = { '2008': { 'Chennai Super Kings': 9, 'Delhi Daredevils': 7, 'Royal Challengers Bangalore': 4, 'Kolkata Knight Riders': 5, 'Rajasthan Royals': 13, 'Kings XI Punjab': 10, 'Deccan Chargers': 2, 'Mumbai Indians': 7 }, '2009': { 'Royal Challengers Bangalore': 9, 'Delhi Daredevils': 10, 'Deccan Chargers': 9, 'Chennai Super Kings': 8, 'Kolkata Knight Riders': 3, 'Rajasthan Royals': 6, 'Kings XI Punjab': 7, 'Mumbai Indians': 4 }, '2010': { 'Mumbai Indians': 11, 'Delhi Daredevils': 7, 'Kolkata Knight Riders': 6, 'Deccan Chargers': 8, 'Royal Challengers Bangalore': 8, 'Chennai Super Kings': 9, 'Rajasthan Royals': 6, 'Kings XI Punjab': 4 } }
Object.values(data).forEach(value => {
Object.keys(value).forEach(token => console.log(token));
});
如果您想单独获取每一年的团队名称,请执行以下操作:
data = { '2008': { 'Chennai Super Kings': 9, 'Delhi Daredevils': 7, 'Royal Challengers Bangalore': 4, 'Kolkata Knight Riders': 5, 'Rajasthan Royals': 13, 'Kings XI Punjab': 10, 'Deccan Chargers': 2, 'Mumbai Indians': 7 }, '2009': { 'Royal Challengers Bangalore': 9, 'Delhi Daredevils': 10, 'Deccan Chargers': 9, 'Chennai Super Kings': 8, 'Kolkata Knight Riders': 3, 'Rajasthan Royals': 6, 'Kings XI Punjab': 7, 'Mumbai Indians': 4 }, '2010': { 'Mumbai Indians': 11, 'Delhi Daredevils': 7, 'Kolkata Knight Riders': 6, 'Deccan Chargers': 8, 'Royal Challengers Bangalore': 8, 'Chennai Super Kings': 9, 'Rajasthan Royals': 6, 'Kings XI Punjab': 4 } }
Object.values(data).forEach(value => {
console.log(Object.keys(value));
});
要获得多年来唯一的团队名称,请执行以下操作:
data = { '2008': { 'Chennai Super Kings': 9, 'Delhi Daredevils': 7, 'Royal Challengers Bangalore': 4, 'Kolkata Knight Riders': 5, 'Rajasthan Royals': 13, 'Kings XI Punjab': 10, 'Deccan Chargers': 2, 'Mumbai Indians': 7 }, '2009': { 'Royal Challengers Bangalore': 9, 'Delhi Daredevils': 10, 'Deccan Chargers': 9, 'Chennai Super Kings': 8, 'Kolkata Knight Riders': 3, 'Rajasthan Royals': 6, 'Kings XI Punjab': 7, 'Mumbai Indians': 4 }, '2010': { 'Mumbai Indians': 11, 'Delhi Daredevils': 7, 'Kolkata Knight Riders': 6, 'Deccan Chargers': 8, 'Royal Challengers Bangalore': 8, 'Chennai Super Kings': 9, 'Rajasthan Royals': 6, 'Kings XI Punjab': 4 } }
var teams = new Set();
Object.values(data).forEach(value => Object.keys(value).forEach(team => teams.add(team)));
console.log(teams)
https://stackoverflow.com/questions/57816288
复制相似问题