我搜索了这个问题,但答案是多余的,所以我想问一下,如果没有任何匹配,如何检查包含另一个数组的任何数组。
我希望这个['abc']
是假的,因为它里面没有另一个数组,这是真的['abc',[1]]
。许多示例都使用复杂的循环来查找数组值,但是知道数组中是否存在数组的最简单方法是什么?
答案 0 :(得分:2)
尝试使用{
"query": {
"filtered": {
"filter": {
"term": {
"cityId": "10777"
}
},
"query": {
"query_string": {
"query": "pizza",
"fields": [
"name",
"main",
"category.name"
]
}
}
}
},
"sort": [
{
"premium": {
"order": "desc"
}
}
],
"aggs": {
"categories": {
"terms": {
"field": "category.name"
}
}
}
}
,Array.prototype.some
Array.isArray
var arr1 = ["abc"]; var arr2 = ["abc", [1]]; var res1 = arr1.some(function(item) { return Array.isArray(item); }); var res2 = arr2.some(function(item) { return Array.isArray(item); }); document.body.innerHTML = "arr1 contains `Array`:" + res1 + "<br> arr2 contains `Array`:" + res2;
为什么会这样 不起作用?
注意,jQuery似乎不需要返回预期的结果。
尝试在回调中的元素上为$.each(arrayTag,function(){ console.log(this.isArray); });
回调$.each()
调用function(key, item)
添加参数
Array.isArray(item)
var arr1 = ["abc"];
var arr2 = ["abc", [1]];
$.each(arr1, function(key, item) {
console.log(Array.isArray(item))
});
$.each(arr2, function(key, item) {
console.log(Array.isArray(item))
});
答案 1 :(得分:2)
您可以使用jQuery filter()
方法仅返回数组的数组元素;并检查元素是否为数组,您可以使用jQuery type()
方法。如果数字返回值大于0
,则数组包含一个数组 - true
;否则,false
。
function hasArray( array ) {
return $.grep( array, function(v,i) {
return $.type( v ) == 'array';
}).length > 0;
}
console.log( hasArray( [ 'abc', [ 1 ] ] ) ); //true
console.log( hasArray( [ 'abc' ] ) ); //false
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
答案 2 :(得分:0)
如果您想要实际抓取内部数组:
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/path/to/directory");
options.setExperimentalOption("prefs", prefs);
ChromeDriver chromeDriver = new ChromeDriver(options);
但如果你只想要一个布尔
var array = ['a', [1,2,3]]
array.filter(function(element){
return Array.isArray(element)
})