js如何把object怎么转化数组,并取出object中的值

JavaScript019

js如何把object怎么转化数组,并取出object中的值,第1张

原则上obj是不能转换成数组的。

首先array也是obj。只是一个特殊的object。

obj一个很关键的点,是拥有成员和方法,撇开方法不说,obj就是一个key-value结构。也就是哈希数组,而js的数组只能是由数字索引组成的。撇开了key,只留下value的话数据丢失太多。如果保留了key,那么就是哈希数组,而在js里面,哈希数组属于obj,不属于array。

强制转换如下。

var arr = []

for(i in obj){

arr.push(i)

IPLocationMap是不是异步获取的。例如通过ajax得到的?如果是这样的话你写成callback,等到获ajax请求完成之后再去取值。例如:

/* 因为ajax是异步请求, 例如我们打开一个网站,并不是立即显示出来的,是经过一定的延迟才显示的, 

所以我用setTimeout模拟ajax请求的延迟,callback参数是一直到setTimeout结束才会执行。

*/

function getIPAddr(callback) {

setTimeout(function() {

var IPLocationMap = {

"localhost": "本地电脑",

"0.0.0.0": "DNS"

}

callback(IPLocationMap)

}, 5000)

}

getIPAddr(function(addr) {

console.log(addr['0.0.0.0'])

})