Javascript将索引与数组值进行比较

Javascript将索引与数组值进行比较,javascript,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" }, {

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

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请求的结果是否与“预期”或“标准”数据集匹配。例如,我的非标准项对象就是我从api得到的一个示例

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

这个例子是人为的,仓促的,所以我为拼写、句法和解释上的错误道歉。控制台引发的错误是不存在非标准项.items[-1]。值。

使用筛选器()


我真的不明白你想做什么。你能更好地描述它吗?听起来你想要
…value==indexOf(…code)
,而不是
。value
twice你得到了什么错误?它是
mainItems。indexOf
not
mainItemsindexOf
当你使用indexOf时,如果数组中不存在值,这个返回-1,在你的例子中,你说mainItem是否包含“14”此返回值为-1,显然不正常。现在,您可以使用mainItems.includes(“14”)和not indexOf this return true或false,不需要进行比较
if (nonStandardItems.items.filter(v => mainItems.indexOf(v.code) == v.value).length > 0) {
    console.log("you are right")
}