我正在尝试创建一个脚本,在该脚本中需要检查对象是否已经在数组中,但是遇到了困难。
以下是我要做的事情:
var boardTiles = [{"id":70,"color":"y","number":11,"owner":"0","locked":false}];
var usedTiles = [{"id":42,"color":"y","number":"11"}];
var playableFields = [];
for (var i = 0; i < boardTiles.length; i++){
if(boardTiles[i].owner === "0" && boardTiles[i].number !== 13){
var thisTileJson = {
"color": boardTiles[i].color,
"number": ""+boardTiles[i].number
};
playableFields.push(thisTileJson);
}
}
for (var i = 0; i < usedTiles.length; i++){
var checkThis = false;
var thisUsedTileJson = {
"color": usedTiles[i].color,
"number": ""+usedTiles[i].number
};
console.log("ThisUsedTile: "+JSON.stringify(thisUsedTileJson));
console.log("ThisplayableField: "+JSON.stringify(playableFields[i]));
console.log("Is object in array:" +containsObject(thisUsedTileJson, playableFields));
}
function containsObject(obj, list) {
var i;
for (i = 0; i < list.length; i++) {
if (list[i] === obj) {
return true;
}
}
return false;
}
我认为我应该从containsObject函数中得到一个“true”但是得到一个假的吗?
我的console.log看起来像这样:
ThisUsedTile:{“color”:“y”,“number”:“11”} VM1123:29 ThisplayableField: {“color”:“y”,“number”:“11”} VM1123:30数组中的对象:false
我真的在黑暗中,希望得到帮助。
提前致谢: - )