Javascript 检查多维数组中是否存在值并返回布尔值
我看过很多关于在javascript中搜索嵌套数组的帖子,但没有一篇能够判断数组中是否不存在项 这听起来可能令人困惑,因此以下是一些示例: 我有两个数组Javascript 检查多维数组中是否存在值并返回布尔值,javascript,jquery,Javascript,Jquery,我看过很多关于在javascript中搜索嵌套数组的帖子,但没有一篇能够判断数组中是否不存在项 这听起来可能令人困惑,因此以下是一些示例: 我有两个数组oldArray和newArray 结构如下: array( [0]=>array([name]:"name" [location]:"location") [1]=>array([name]:"name2" [location]:"location2") ) 两
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
}
}
}
var name=oldArray[key]['name'];
for(oldArray中的var键){
for(var i=0,len=newArray.length;i
这样,我将拥有一个包含两个数组中存在的所有名称的数组,以及一个仅包含oldArray中存在的名称的数组
这似乎不起作用,因为这是一个1比1的比较。第一个数组是正确的,但只包含旧数组中存在的名称的数组是不正确的。是否已为旧值初始化数组 你有例外吗 你用Chrome调试过吗 编辑: 我认为如果你这样做: 对于所有旧值push-if-exists并再次询问和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
}
}
}
var name=oldArray[key]['name'];
for(oldArray中的var键){
for(var i=0,len=newArray.length;i
使用布尔值跟踪新数组中是否存在匹配项。然后在新数组上完成内部for循环后,检查布尔值以查看是否未找到匹配项,然后推送到其他数组
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
}
var name=oldArray[key]['name'];
for(oldArray中的var键)
{
var foundMatch=false
for(var i=0,len=newArray.length;i
我对数组没有问题,我只是想能够检查多维数组中是否存在值,如果不推送到其他数组,它是否推送到数组。如果存在,请尝试添加break,如果在newArray末尾,则只推送到第二个数组