目前我一直在使用嵌套的for循环来解决这个问题:
for (var i = 0; i < this.props.trackedPlayers.length; i++)
{
for (var j = 0; j < PHP_VARS.players_data.length; j++)
{
// This check here is the key part
if (PHP_VARS.players_data[j]._id == this.props.trackedPlayers[i]._id)
{
data.push(// stuff from both arrays..);
}
}
}
但是我想可能已经有一个样板函数可以做到这一点。进行了几次搜索,但没有搜索到 - 任何指示,或者这是我目前所获得的最好的搜索结果?
编辑:简要说明,trackedPlayers 均来自 players_data。通过检查(通常)较大的 players_data 中的每个玩家是否在 trackedPlayers 中,我知道是否将它们列为“添加”到 HTML 选择字段的选项。
最佳答案
您可以使用一个对象作为哈希表并遍历两个数组,首先用于构建哈希表,第二个用于测试和进一步操作。
var object = Object.create(null);
this.props.trackedPlayers.forEach(function (a) {
object[a._id] = a;
});
PHP_VARS.players_data.forEach(function (a) {
if (object[a._id]) {
// access data from this.props.trackedPlayers
// with object[a._id]._id as example
// access data from PHP_VARS.players_data
// with a._id as example
data.push(/* stuff from both arrays..*/);
}
});
关于javascript - 检查来自不同数组的两个元素的一个属性是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37103667/