[英]Check if an object exists by its selector, return a boolean value with jQuery or Javascript
[英]check if value exists in mulitdimensional array and return boolean
我見過很多有關在javascript中搜索嵌套數組的文章,但是它們都沒有辦法告訴數組中是否不存在任何項。
這聽起來可能令人困惑,所以這里有一些示例:
我有2個數組oldArray
和newArray
結構如下:
array(
[0]=>array([name]:"name"
[location]:"location")
[1]=>array([name]:"name2"
[location]:"location2")
)
兩個陣列都是以這種方式構造的。
我需要能夠知道舊數組中存在哪些名稱,而不是新數組中存在,反之亦然。
這是我嘗試過的:
var name= oldArray[key]['name'];
for (var key in oldArray) {
for(var i= 0, len = newArray.length; i < len; i++){
if(newArray[i]['name'] == name){
//push to array
}
else{
//push to different array
}
}
}
這樣,我將擁有一個數組,其中包含兩個數組中都存在的所有名稱,以及一個數組,僅包含oldArray中存在的名稱。
這似乎不起作用,因為它是一對一的比較。 第一個數組是正確的,但僅應包含舊數組中存在的名稱的數組是不正確的。
您是否為舊值初始化了數組?
你有例外嗎?
您是否使用Chrome調試過?
編輯:
我認為如果您這樣做:
對於所有舊值,push如果存在,然后再次詢問並推送,它將繼續以無限循環進行推送。
嘗試加個休息
var name= oldArray[key]['name'];
for (var key in oldArray) {
for(var i= 0, len = newArray.length; i < len; i++){
if(newArray[i]['name'] == name){
//push to array
break;
}
else{
if(i==newArray.length-1)
//push to different array
}
}
}
使用布爾值跟蹤新數組中是否存在匹配項。 然后,在完成newArray的內部for循環之后,檢查boolean以查看是否未找到匹配項,然后推送到其他數組。
var name= oldArray[key]['name'];
for (var key in oldArray)
{
var foundMatch=false
for(var i= 0, len = newArray.length; i < len; i++)
{
if(newArray[i]['name'] == name)
{
//push to array
foundMatch=true;
break;
}
}
if(foundMatch==false)
//push to different array
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.