如何把JS对象转成数组

JavaScript028

如何把JS对象转成数组,第1张

如何把JS对象转成数组

1. 前言

首先,当JS对象是键值对的情况时(Json对象),因为数组时以数字为索引的,所以只能把JS对象中的Key或者Value组成数组使用。

2. 样例如下:

var obj={"one":"I am 1","two":"I am 2"}

var arr = Object.getOwnPropertyNames(obj) //arr=["one", "two"]

var arr2 = Object.keys(obj)//arr=["one", "two"]

var valArr = arr.map(function(i){return obj[i]})//["I am 1", "I am 2"]

var valArr2 = arr2.map(function(i){return obj[i]})//["I am 1", "I am 2"]

//或者2,4和3,5各自合并成一条语句

var valArr22 = Object.keys(obj).map(function(i){return obj[i]})//["I am 1", "I am 2"]

只需要一句,arr.__proto__=[]但是要注意浏览器支持__proto__才行,最新的浏览器应该都支持。

以下两种都可以解决此问题:

function transform(obj){

var arr = []

for(var item in obj){

arr.push(obj[item])

}

return arr

}

或者

public static void main(String[] args) {

String [] s={"2","3","4"}

int [] array=new int[3]

for(int i=0i<s.lengthi++){

array[i]=Integer.parseInt(s[i])

System.out.println(array[i])

}

}

var arr = ["中国|广东|深圳","中国|广东|深圳","中国|湖北|黄石","中国|湖北|武汉","中国|广东|广州","中国|广东|广州","中国|湖北|武汉","中国|福建|福州","中国|福建|厦门"]

        var result={}

        var temp={}

        for(var i=0i<arr.lengthi++){

            var item=arr[i]

            var its=item.split('|')//按|拆分

            var country=its[0]//国家

            var province=its[1]//省

            var city=its[2]//城市

            if(!result[country]){//国家不在结果对象里

                result[country]=[]//添加

            }

            if(!temp[province]){//临时对象没有省信息

                result[country].push(temp[province]={//记入结果数组

                    province:[province],

                    city:[],

                    count:[]

                })

            }

            var info=temp[province]

            var found=false

            for(var j=info.city.length-1j>=0j--){//在省信息的城市数组里查找是否已经存在

                if(info.city[j]==city){

                    found=true//已经存在

                    info.count[j]=info.count[j]+1//更新count

                }

            }

            if(!found){//未找到城市

                info.city.push(city)//添加

                info.count.push(1)//count初始值为1

            }

        }

        console.log(result)