【发布时间】:2018-06-03 17:06:26
【问题描述】:
我正在尝试对数组进行排序。我想对它进行排序,以便对于相同的 accountID,我将所有项目存储为一个数组项目。示例输入:
[{accountID: "-Ks8mWWekpN2BfOFcdbS", itemName: "Petrol Charges At Esso"}],
[{accountID: "-Ks8mWWekpN2BfOFcdbS", itemName: "Hylo Lubricant Eye Drops 10ml"}],
[{accountID: "-Ks8mWWekpN2BfOFcdbS", itemName: "Genteal Gel, Sterile Lubricant Eye Gel, 10g"}],
[{accountID: "-Ks8mWWekpN2BfOFcdbS", itemName: "Genteal Gel, Sterile Lubricant Eye Gel, 10g"}],
[{accountID: "-Ks8mWWekpN2BfOFcdbS", itemName: "Blink Intensive Tears Protective Eye Drops 0.4mlx20"}],
[{accountID: "-Ks8mWWekpN2BfOFcdbS", itemName: "Palmers White And Even Dark Circles Eye Treatment Cream 15ml"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Sensitive Pro-relief With Whitening Toothpaste 110g"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "2 In 1 Pure Breath Toothpaste"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Antibackterial Mouthwash 200ml"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Akira 1.7l Jug Kettle Jk1718c"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Duracell Alkaline Batteries Aaa 12s"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Osram Led Star Classic A100 Light Bulb - Frosted Warm White 10.5w/827"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Sharks Fin Soup With Crab Meat And Cordyceps"}],
[{accountID: "-Ks8mWWq445Uao_9sgNn", itemName: "Chilli Fried Rice With Shrimps"}],
要打印到文本文件的所需输出:
['Petrol Charges At Esso', 'Hylo Lubricant Eye Drops 10ml', 'Genteal Gel, Sterile Lubricant Eye Gel, 10g', 'Blink Intensive Tears Protective Eye Drops 0.4mlx20', 'Palmers White And Even Dark Circles Eye Treatment Cream 15ml'],
['Sensitive Pro-relief With Whitening Toothpaste 110g', '2 In 1 Pure Breath Toothpaste', 'Antibackterial Mouthwash 200ml', 'Akira 1.7l Jug Kettle Jk1718c', 'Duracell Alkaline Batteries Aaa 12s', 'Osram Led Star Classic A100 Light Bulb - Frosted Warm White 10.5w/827', 'Sharks Fin Soup With Crab Meat And Cordyceps', 'Chilli Fried Rice With Shrimps'],
我的 JavaScript 代码:
// for simplicity purpose, I do not post the chunk where I resolve the promise.
promiseKey.then((arr) => {
console.log(arr);
var result = arr.reduce(function(items, item) {
var existing = items.find(function(i) {
return i.accountID === item.accountID;
});
if (existing) {
existing.filteredlist.push(item.itemName);
} else {
items.push(item);
}
return items;
}, []);
console.log('filtered');
console.log(result);
});
我得到的错误是 Uncaught (in promise) TypeError: Cannot read property 'push' of undefined at the else statement there.
【问题讨论】:
-
你能展示你的数组声明吗
-
@programtreasures 你的意思是“arr”还是“filteredlist”?如果为“arr”,则数据之前是从 firebase 检索到的。为简单起见,我只是 console.log 并自己格式化输入,而不是发布整个检索块。
-
@guest176969 您的输入不是数组,而是一堆数组。选择一个!
-
我已经更新了这个问题。检查屏幕截图:) 我的格式可能有误,对此我深表歉意!
-
问题是你的
existing.filteredlist文件永远不会被创建
标签: javascript arrays sorting