Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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_Arrays - Fatal编程技术网

Javascript 如果项位于多维数组的任意维度中

Javascript 如果项位于多维数组的任意维度中,javascript,jquery,arrays,Javascript,Jquery,Arrays,例如,我有一个数组是2d的,看起来像这样:`var arr=[[“1”、“2”、“3”]、[“4”、“5”]、[“6”];' 当我运行$.inArray(“4”,arr)时或arr.indexOf(“4”),我得到-1表示它不在数组中。但是,它位于一个内部数组中 我如何判断它是在数组中还是在作为数组元素的任何数组中?换句话说,在数组的任何维中。更好的工程解决方案是创建一个递归函数来搜索数组中的值 如果数组只有两层深(如示例中所示),还有一个更方便的解决方案:展平数组,只需使用indexOf: v

例如,我有一个数组是2d的,看起来像这样:`var arr=[[“1”、“2”、“3”]、[“4”、“5”]、[“6”];'

当我运行
$.inArray(“4”,arr)时
arr.indexOf(“4”)
,我得到-1表示它不在数组中。但是,它位于一个内部数组中


我如何判断它是在数组中还是在作为数组元素的任何数组中?换句话说,在数组的任何维中。

更好的工程解决方案是创建一个递归函数来搜索数组中的值

如果数组只有两层深(如示例中所示),还有一个更方便的解决方案:展平数组,只需使用
indexOf

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
var flattened = Array.prototype.concat.apply([], arr);
alert(flattened.indexOf("4"));

更好的工程解决方案是创建一个递归函数来搜索数组中的值

如果数组只有两层深(如示例中所示),还有一个更方便的解决方案:展平数组,只需使用
indexOf

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
var flattened = Array.prototype.concat.apply([], arr);
alert(flattened.indexOf("4"));

更好的工程解决方案是创建一个递归函数来搜索数组中的值

如果数组只有两层深(如示例中所示),还有一个更方便的解决方案:展平数组,只需使用
indexOf

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
var flattened = Array.prototype.concat.apply([], arr);
alert(flattened.indexOf("4"));

更好的工程解决方案是创建一个递归函数来搜索数组中的值

如果数组只有两层深(如示例中所示),还有一个更方便的解决方案:展平数组,只需使用
indexOf

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
var flattened = Array.prototype.concat.apply([], arr);
alert(flattened.indexOf("4"));
你可以做:

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
if(arr.join().split(',').indexOf("4") != -1){
   // do something.     
}
.join()
将数组转换为逗号分隔的元素,并
.split(',')
从中创建一个新数组,它是一个展开的数组。因此,
.indexOf()
现在可以工作了

您可以执行以下操作:

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
if(arr.join().split(',').indexOf("4") != -1){
   // do something.     
}
.join()
将数组转换为逗号分隔的元素,并
.split(',')
从中创建一个新数组,它是一个展开的数组。因此,
.indexOf()
现在可以工作了

您可以执行以下操作:

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
if(arr.join().split(',').indexOf("4") != -1){
   // do something.     
}
.join()
将数组转换为逗号分隔的元素,并
.split(',')
从中创建一个新数组,它是一个展开的数组。因此,
.indexOf()
现在可以工作了

您可以执行以下操作:

var arr = [["1", "2", "3"], ["4", "5"], ["6"]];
if(arr.join().split(',').indexOf("4") != -1){
   // do something.     
}



.join()
将数组转换为逗号分隔的元素,并
.split(',')
从中创建一个新数组,它是一个展开的数组。因此,
.indexOf()
现在可以工作了

@adeneo so,当在数组中发现一个数组作为元素时调用数组?但是,如果内部数组未分配给变量,我如何进行数组或索引?请先尝试展平数组,例如使用
$。map
@KingKing如何使用map展平数组?另一篇帖子已经回答了这个问题:@adeneo so,在数组中发现数组作为元素时调用数组?但是,如果内部数组未分配给变量,我如何进行数组或索引?请先尝试展平数组,例如使用
$。map
@KingKing如何使用map展平数组?另一篇帖子已经回答了这个问题:@adeneo so,在数组中发现数组作为元素时调用数组?但是,如果内部数组未分配给变量,我如何进行数组或索引?请先尝试展平数组,例如使用
$。map
@KingKing如何使用map展平数组?另一篇帖子已经回答了这个问题:@adeneo so,在数组中发现数组作为元素时调用数组?但是如果内部数组没有分配给var,我如何进行数组或索引呢?请先尝试展平数组,例如使用
$.map
@KingKing如何使用map展平数组?这个问题已经在另一篇文章中得到了回答:如果数组中没有4,但14是,则返回
true
。这不是在嵌套数组中搜索项的方式(转换为字符串表示)。@lan这不是字符串表示,这个解决方案事实上是有效的。@KingKing Crap,我专注于
.join()
部分,却忘了
.split()
。这似乎是可行的,只要输入是一个带有简单数字的2d数组,输入也可以是一个字符串,但不应包含任何逗号,否则我们将失去每个实际元素之间的边界。@KingKing正是如此,所以这个答案对于这个问题非常具体;其他答案可应用于任何二维阵列。我最初的评论是完全错误的——我看的东西是错误的。如果数组中没有4,但14是,那么返回
true
。这不是在嵌套数组中搜索项的方式(转换为字符串表示)。@lan这不是字符串表示,这个解决方案事实上是有效的。@KingKing Crap,我专注于
.join()
部分,却忘了
.split()
。这似乎是可行的,只要输入是一个带有简单数字的2d数组,输入也可以是一个字符串,但不应包含任何逗号,否则我们将失去每个实际元素之间的边界。@KingKing正是如此,所以这个答案对于这个问题非常具体;其他答案可应用于任何二维阵列。我最初的评论是完全错误的——我看的东西是错误的。如果数组中没有4,但14是,那么返回
true
。这不是在嵌套数组中搜索项的方式(转换为字符串表示)。@lan这不是字符串表示,这个解决方案事实上是有效的。@KingKing Crap,我专注于
.join()
部分,却忘了
.split()
。这似乎是可行的,只要输入是一个带有简单数字的2d数组,输入也可以是一个字符串,但不应包含任何逗号,否则我们将失去每个实际元素之间的边界。@KingKing正是如此,所以这个答案对于这个问题非常具体;其他答案可应用于任何二维阵列。我最初的评论是完全错误的——我在看