在我的对象循环中使用earch function
如何找到值“只是一个字符串” - 或“数组” - 或“对象” - 循环通过..?
如果我发现值为“数组” - 那么我想重新循环数组。但是我怎样才能使用jquery找到可循环或可返回的值..?
myobject:
var input = {
"DashBoard": [
{
"title": "DashBoard" //non-loopable
}, {
"widget": [{ //loop-able - it could be a object (so loop-able)
"slide": "To do"
}, {
"slide": "Teamspace"
}, {
"slide": "Recent Activity"
}]
}
]}
但是使用Jquery类型 - 返回always对象。找到对象值以区分值与数组或对象的方式是什么??
我的尝试:
$.each(input.DashBoard, function (index, item) {
console.log(index, $.type(item)); //always return object..!
} )
什么是正确的方式..
答案 0 :(得分:2)
使用typeof
运算符来获取操作数的类型。
typeof item === 'string'
或 typeof item === 'object'
但是当它遇到一个数组时,它只是将它作为一个对象返回。为此,您可以使用jQuery的$.isArray
方法
答案 1 :(得分:2)
检查构造函数(类)?
''.constructor === String
[].constructor === Array
{}.constructor === Object
答案 2 :(得分:0)
使用$.isArray()测试数组
答案 3 :(得分:0)
使用underscore.js的isArray function
这是非常实用且轻量级的javascript实用程序库
几乎适用于所有浏览器。
(function(){ return _.isArray(arguments); })();
=> false
_.isArray([1,2,3]);
=> true
答案 4 :(得分:0)
以下是可用于确定您的值是字符串/对象还是数组的代码: 如果($。IsArray的(yourVariable)) { //循环 } 其他 { //返回 }