Javascript比较索引与数组值

时间:2016-10-05 20:36:08

标签: javascript

我有一个主数组,以及一个包含项目数组的对象。我想看看包含项的对象是否与主数组索引匹配。如果匹配,则写入控制台。

var mainItems = [0,1,2,3,4,5,6,7,8,9,10,"car", "boat", "truck", "plane"];
var nonStandardItems =
{
    "items": [
        {

            "value": "8",
            "code": "8ic"
        },
        {
            "value": "boat",
            "code": "10bt"
        }
    ],

}

if( nonStandardItems.items.slice(-1)[0].value == mainItems.indexOf(nonStandardItems.items.slice(-1)[0].value)  ){
    console.log("you are right");
}

但是,我只得到-1的值,并且出错。我错过了什么?

修改 我从不同的数据源中提取数据,所有数据都包含垃圾数据。但是,垃圾数据数组中的最后一项是我需要的项目。

我想检查来自我的api请求的结果是否与“预期”或“标准”数据集相匹配。例如,我的nonStandardItems对象是我从api返回的一个例子。

我想解析它,并检查items数组中的LAST项是否具有与我的标准项数组的索引匹配的值。我的垃圾项目数组包含数字和文本数据,但最后一项将始终具有我期望的数字或文本代码。

这个例子是设计和匆忙的,所以我为拼写,句法和解释错误道歉。控制台抛出的错误是nonstandardItems.items [-1] .value不存在。

1 个答案:

答案 0 :(得分:0)

使用filter():

if (nonStandardItems.items.filter(v => mainItems.indexOf(v.code) == v.value).length > 0) {
    console.log("you are right")
}