我试图找到其后编号最小的名称,但是对于较大的列表,迭代它的速度很慢。例如,预期输出应该是 ["bob", 1] [“杰夫”,2] ["沃尔-E",2]
let items = [["bob",1],["jeff",2],["wal-E",2],["bob",1],["bob",10]]
let items2 = []
let Lowest = 0;
for (y in items){
for (z in items)
{
if (items[y][0] == items[z][0] && items[y][1]<=items[z][1]){
continue;
} else if (items[y][0] == items[z][0]){
Lowest += 1
if (Lowest >= 2){
break;
}
else {
continue;
}
}
}
if (Lowest == 0){
items2.push(items[y])
}
}
console.log(items2);
最佳答案
使用 reduce
是实现这一目标的优雅解决方案
let items = [["bob",1],["jeff",2],["wal-E",2],["bob",1],["bob",10]];
const lowestItem = items.reduce((a, b) => a[1] < b[1] ? a : b);
console.log(lowestItem);
在此处阅读有关 Array.prototype.reduce
的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
https://stackoverflow.com/questions/69337327/
相关文章:
node.js - Docker + WebGL + Headless Chrome 错误 : Pa
javascript - 正则表达式获取第一次和最后一次出现之间的子字符串
python - 如何确定 Pandas DataFrame 中给定 x 和 y 坐标列的象限
python - 在不添加额外列的情况下创建颜色基于年份的散点图
c# - 从 C# 中的 Win32_PnPEntity 获取 DEVPKEY_Device_Bus
php - 无法加载 Mac M1 SQL Server SQLSrv OpenSSL 库,请确保已
visual-studio - 缺少 Visual Studio 性能探查器