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
notmainItemsindexOf
当你使用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")
}