检查对象是否在数组中不起作用

时间:2017-02-18 16:03:54

标签: javascript arrays json

我正在尝试创建一个脚本,在该脚本中需要检查对象是否已经在数组中,但是遇到了困难。

以下是我要做的事情:

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

我真的在黑暗中,希望得到帮助。

提前致谢: - )

0 个答案:

没有答案