大佬教程收集整理的这篇文章主要介绍了确定Javascript对象是“复杂”对象还是仅仅是字符串,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
'this is a String'
或者一个javascript对象,
{one: 'this',two: 'is',three: 'a',four: 'String' }
作为函数的参数,并根据它是字符串还是对象采取不同的操作.我如何确定哪个是真的?
具体来说,我想迭代对象的属性,如果属性是字符串,则进行一些解析,但如果属性是对象,则递归嵌套.我已经想出如何使用$.each()迭代对象的属性,但是如果我只是用字符串做这个,它会将字符串作为一个字母数组而不是一个单独的东西来处理.我可以通过其他方式解决这个问题吗?
var data = { foo: "I'm a String literal",bar: { content: "I'm within an object" } };
jQuery的
$.each(data,function(i,element){ if($.isPlainObject(element){ // we got an object here } });
在jQuery lib中有类似的方法,如$.isArray()或$.isFunction().
原生Javascript
for(var element in data){ if(toString.call(element) === '[object Object]'){ // we got an object here } }
在toString中使用hack’ish方式有一个优点,即可以识别它是否真的是一个对象和一个数组.对象和数组都将使用typeof元素返回对象.
长话短说,你不能依靠typeof运算符来区分真实对象和数组.为此你需要toString.call().如果你只是需要知道它是否是任何对象,typeof就好了.
以上是大佬教程为你收集整理的确定Javascript对象是“复杂”对象还是仅仅是字符串全部内容,希望文章能够帮你解决确定Javascript对象是“复杂”对象还是仅仅是字符串所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。