Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查多维数组中是否存在值并返回布尔值_Javascript_Jquery - Fatal编程技术网

Javascript 检查多维数组中是否存在值并返回布尔值

Javascript 检查多维数组中是否存在值并返回布尔值,javascript,jquery,Javascript,Jquery,我看过很多关于在javascript中搜索嵌套数组的帖子,但没有一篇能够判断数组中是否不存在项 这听起来可能令人困惑,因此以下是一些示例: 我有两个数组oldArray和newArray 结构如下: array( [0]=>array([name]:"name" [location]:"location") [1]=>array([name]:"name2" [location]:"location2") ) 两

我看过很多关于在javascript中搜索嵌套数组的帖子,但没有一篇能够判断数组中是否不存在项

这听起来可能令人困惑,因此以下是一些示例:

我有两个数组
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末尾,则只推送到第二个数组