Javascript 检查包含数组的数组
我搜索了这个问题,但答案是多余的,因此我想问,在没有任何匹配的情况下,如何检查是否包含其他数组的任何数组 我认为这个['abc']是假的,因为它里面没有其他数组,这是真的['abc',[1]]。许多示例都会执行复杂的循环来查找数组值,但要知道数组中是否存在数组,最简单的方法是什么 尝试使用Array.prototype.some、Array.isArray var arr1=[abc]; var arr2=[abc[1]]; var res1=arr1.somefunctionitem{ 返回Array.isArrayitem; }; var res2=arr2.somefunctionitem{ 返回Array.isArrayitem; }; document.body.innerHTML=arr1包含`Array`:+res1 +arr2包含`Array`:+res2 尝试使用Array.prototype.some、Array.isArray var arr1=[abc]; var arr2=[abc[1]]; var res1=arr1.somefunctionitem{ 返回Array.isArrayitem; }; var res2=arr2.somefunctionitem{ 返回Array.isArrayitem; }; document.body.innerHTML=arr1包含`Array`:+res1Javascript 检查包含数组的数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我搜索了这个问题,但答案是多余的,因此我想问,在没有任何匹配的情况下,如何检查是否包含其他数组的任何数组 我认为这个['abc']是假的,因为它里面没有其他数组,这是真的['abc',[1]]。许多示例都会执行复杂的循环来查找数组值,但要知道数组中是否存在数组,最简单的方法是什么 尝试使用Array.prototype.some、Array.isArray var arr1=[abc]; var arr2=[abc[1]]; var res1=arr1.somefunctionitem{ 返回
+arr2包含`Array`:+res2 如果要实际获取内部数组:
var array = ['a', [1,2,3]]
array.filter(function(element){
return Array.isArray(element)
})
但是如果你只想要一个布尔值
var isAnArray = false
for(var i = 0; i < array.length; i ++ ) {
if(Array.isArray(array[i])) {
isAnArray = true
break;
}
}
如果要实际获取内部数组:
var array = ['a', [1,2,3]]
array.filter(function(element){
return Array.isArray(element)
})
但是如果你只想要一个布尔值
var isAnArray = false
for(var i = 0; i < array.length; i ++ ) {
if(Array.isArray(array[i])) {
isAnArray = true
break;
}
}
可以使用jqueryfilter方法只返回数组的数组元素;要检查元素是否是数组,可以使用jQuery类型方法。如果返回的数字大于0,则数组包含一个数组-true;否则,错误
函数数组{
返回$.grep数组,functionv,i{
返回$.type v=='array';
}.长度>0;
}
console.log hasArray['abc',[1]]//符合事实的
console.log hasArray['abc']//错误的
可以使用jqueryfilter方法只返回数组的数组元素;要检查元素是否是数组,可以使用jQuery类型方法。如果返回的数字大于0,则数组包含一个数组-true;否则,错误
函数数组{
返回$.grep数组,functionv,i{
返回$.type v=='array';
}.长度>0;
}
console.log hasArray['abc',[1]]//符合事实的
console.log hasArray['abc']//错误的
迭代,然后使用Array.isArray.Array检查。Array没有神奇的能力知道它们包含什么,也没有索引或存储关于其中包含什么的知识。您只需迭代数组中的项,并检查数组中是否有任何插槽包含数组。@elclanrs为什么不起作用?$。eacharr,函数{console.logthis.isArray;//未定义}@tonyyew var arr=[1,3,5,7]];$。eacharr,函数{console.logArray.isArraythis;};迭代,然后使用Array.isArray.Array检查。Array没有神奇的能力知道它们包含什么,也没有索引或存储关于其中包含什么的知识。您只需迭代数组中的项,并检查数组中是否有任何插槽包含数组。@elclanrs为什么不起作用?$。eacharr,函数{console.logthis.isArray;//未定义}@tonyyew var arr=[1,3,5,7]];$。eacharr,函数{console.logArray.isArraythis;};$。eacharrayTag,函数{console.logthis.isArray;};为什么这不起作用?为什么不使用return Array.isArrayitem?@tonyyew$.eacharrayTag,函数{console.logthis.isArray;};为什么这不起作用?尝试在$.eacharrayTag、functionkey、项{console.logArray.isArrayitem;}定义参数;请参阅更新的postIt在构造函数上进行字符串匹配,甚至在Array.isArray内置到该语言中时将其作为一个选项提供,这很奇怪。仅供参考,您的构造函数字符串匹配也很容易产生误报。@guest271314-显示误报的示例:$.eacharrayTag,函数{console.logthis.isArray;};为什么这不起作用?为什么不使用return Array.isArrayitem?@tonyyew$.eacharrayTag,函数{console.logthis.isArray;};为什么这不起作用?尝试在$.eacharrayTag、functionkey、项{console.logArray.isArrayitem;}定义参数;请参阅更新的postIt在构造函数上进行字符串匹配,甚至在Array.isArray内置到该语言中时将其作为一个选项提供,这很奇怪。仅供参考,您的构造函数字符串匹配也很容易产生误报。@guest271314-显示误报的示例:是否使用return false中断相同的内容?否。一旦满足条件,break将停止循环。return也会停止循环,但也会停止循环后的所有操作。return false是否会中断相同的操作?否。break只是在满足条件后停止循环。return还将停止循环,但也会停止循环后所有内容的执行。