首先array也是obj。只是一个特殊的object。
obj一个很关键的点,是拥有成员和方法,撇开方法不说,obj就是一个key-value结构。也就是哈希数组,而js的数组只能是由数字索引组成的。撇开了key,只留下value的话数据丢失太多。如果保留了key,那么就是哈希数组,而在js里面,哈希数组属于obj,不属于array。
强制转换如下。
var arr = []
for(i in obj){
arr.push(i)
var a={a:123,b:"string"}
var b = "{a:123,b:'string'}"
console.log(a)
console.log(b)
alert(a)
alert(b)
//我猜的情况: 接口返回给你前端的数据是字符串,而不是object。
//1 试着将字符串转成object,推荐转成json 对象。
//2 和后端协商http的请求的返回值。把response type 改为使用json,而不是text,html之类的文本
网页链接