【发布时间】:2020-04-03 18:22:30
【问题描述】:
我有一个包含地址的对象数组。我需要执行以下操作:
- 从地址值中提取每个邮政编码。
- 查找唯一的邮政编码并存储重复的数量。
- 将每个唯一邮政编码的第一个地址与重复的数量一起存储在一个新数组中。
这是我当前的代码。
const json = [
{ "id": "10093729341", "address": "1 Alpha Road CF14 6AA" },
{ "id": "10024750520", "address": "2 Alpha Road CF14 6AA" },
{ "id": "10025738368", "address": "3 Alpha Road CF14 6AF" },
{ "id": "10025738368", "address": "4 Alpha Road CF14 6AF" },
{ "id": "10025738368", "address": "4 Alpha Road CF14 6AB" }
]
let allPostcodes = [];
json.forEach(address => {
const fullAddresses = address.address;
const postcodes = fullAddresses.split(",").map(s => s.trim().match(/([A-Za-z]{1,2}\d{1,2})(\s?(\d?\w{2}))?/)).filter(e => e)[0][0]
allPostcodes.push(postcodes);
});
const uniquePostcodes = [...new Set(allPostcodes)];
uniquePostcodes.forEach(postcode => {
const addresses = json.find(address => address.address.indexOf(postcode));
console.log(addresses.address);
});
上面的最后部分在第一场比赛中停止,但仅适用于第一个邮政编码。我认为在一个循环中它会起作用,但它没有。
我想要的结果是这样的:
const array = [
{
"address": "1 Alpha Road CF14 6AA",
"count": 2,
"postcode": "CF14 6AA"
},
{
"address": "3 Alpha Road CF14 6AF",
"count": 2,
"postcode": "CF14 6AF"
},
{
"address": "4 Alpha Road CF14 6AB",
"count": 1,
"postcode": "CF14 6AB"
}
]
【问题讨论】:
-
你有想要的结果的例子吗?
-
我已添加更新!谢谢
标签: javascript arrays