gpt4 book ai didi

javascript - 从数组 javascript 中获取每个项目之一

转载 作者:行者123 更新时间:2023-12-03 09:19:06 27 4
gpt4 key购买 nike

我有一个包含对象的数组。对象属性之一是“位置”。另一个是“player_name”。球员众多,但只有 8 个独特的位置。我想遍历数组并捕获每个位置的第一个玩家并将其移动到新数组。最后,我应该有一个总共 8 名球员的新阵列,每个球员都有独特的位置。

这是我的代码:

// Sample Object: { "name": "Frank Johnson", "position": "C", "cnx": "17" }

function compare(a,b) {
if (parseFloat(a.cnx) < b.cnx)
return -1;
if (parseFloat(a.cnx) > b.cnx)
return 1;
return 0;
}

var sorted = array.sort(compare);
var new_array = []
sorted.forEach(function (i) {
if (i.position === "1B" ) {
new_array.push(i)
// How do I make it stop looking for 1B's at this point??
}
})

最佳答案

保留数组中遇到的位置的 map ,并添加 map 中没有的每个对象:

function compare(a,b) {
if (parseFloat(a.cnx) < b.cnx)
return -1;
if (parseFloat(a.cnx) > b.cnx)
return 1;
return 0;
}

array.sort(compare);
var new_array = [];
var positions = {};
array.forEach(function (i) {
if (!(i.position in positions)) {
positions[i.position] = 1;
new_array.push(i);
}
});
<小时/>

要从任何位置获取多个玩家,您可以使用 map 项作为计数器并为特定位置设置初始值:

array.sort(compare);
var new_array = [];
var positions = { OF: 3 };
array.forEach(function (i) {
if (!(i.position in positions)) {
positions[i.position] = 1;
}
if (positions[i.position] > 0) {
positions[i.position]--;
new_array.push(i);
}
});

(您还可以使用它来省略位置,例如 { OF: 3, C: 0 })。

关于javascript - 从数组 javascript 中获取每个项目之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31888408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com