You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript代码,遍历数组对象得到所有County独立对象?

如何获取数组对象中的所有County值?

嘿,我来帮你搞定这个问题!先看看你现在的代码:

var data = [{ County: "Cork", date: '1/1/2018', num: 100 }, { County: "Roscommon", date: '07/10/2017', num: 27 }];
var Counties = {};
for (County in data) {
  for (var i = 0; i <= 1; i++) {
    Counties[data[i].County] = data[i].County;
  }
}

你说这段代码最后只返回{County: "Roscommon"}?其实问题出在多余的嵌套循环和不合适的数组遍历方式上:for...in是用来遍历对象属性的,用来遍历数组本身就不太合适,而且内层的循环会重复处理数组里的元素,最后反而可能因为重复赋值导致结果不符合预期。

下面给你几个简单的修改方案,都能帮你获取到所有County值:

方案一:基础for循环遍历

最直观的方式,直接遍历数组的每个元素,把每个County值存入目标对象:

var data = [{ County: "Cork", date: '1/1/2018', num: 100 }, { County: "Roscommon", date: '07/10/2017', num: 27 }];
var Counties = {};

// 遍历数组的每一项
for (var i = 0; i < data.length; i++) {
  var countyName = data[i].County;
  Counties[countyName] = countyName;
}

console.log(Counties); // 输出 { Cork: "Cork", Roscommon: "Roscommon" }

方案二:forEach遍历(更简洁)

如果喜欢更清爽的写法,用数组的forEach方法就很合适:

var data = [{ County: "Cork", date: '1/1/2018', num: 100 }, { County: "Roscommon", date: '07/10/2017', num: 27 }];
var Counties = {};

data.forEach(item => {
  Counties[item.County] = item.County;
});

console.log(Counties); // 输出 { Cork: "Cork", Roscommon: "Roscommon" }

方案三:reduce方法(一行构建对象)

想要更紧凑的代码?用reduce方法可以直接构建出目标对象:

var data = [{ County: "Cork", date: '1/1/2018', num: 100 }, { County: "Roscommon", date: '07/10/2017', num: 27 }];
var Counties = data.reduce((acc, item) => ({ ...acc, [item.County]: item.County }), {});

console.log(Counties); // 输出 { Cork: "Cork", Roscommon: "Roscommon" }

补充:如果想要数组格式的结果

如果你实际想要的是[{County: "Cork"}, {County: "Roscommon"}]这样的数组(而不是键值对对象),那用map方法就能轻松实现:

var data = [{ County: "Cork", date: '1/1/2018', num: 100 }, { County: "Roscommon", date: '07/10/2017', num: 27 }];
var countyList = data.map(item => ({ County: item.County }));

console.log(countyList); // 输出 [{County: "Cork"}, {County: "Roscommon"}]

内容的提问来源于stack exchange,提问作者user1655130

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:37:05