
js将对象转为数组
js脚本处理中,有时候为了方便操作需要将js的对象转成数组,具体的转换方式有很多种,可以参考下面的转换方法!
js将对象中的键转成数组的方法
示例代码:
var obj = { "name": "mochu", "host": "feiniaomy.com", "age": "20", "sex": "男" };
//方案1
var arr = Object.getOwnPropertyNames(obj);
console.log(arr);
//方案2
var arr2 = Object.keys(obj);
console.log(arr2);
控制台打印结果:
["name", "host", "age", "sex"]
js将对象中的值转成数组的方法
想要提取对象中的属性值,需要先得到它的键名,需要借助上面的方法!
示例1:
var obj = { "name": "mochu", "host": "feiniaomy.com", "age": "20", "sex": "男" };
//方案1
var arr = Object.getOwnPropertyNames(obj);
var arr_val = arr.map(function (i) { return obj[i] });
console.log(arr_val)
//方案2
var arr2 = Object.keys(obj);
var arr_val2 = arr2.map(function (i) { return obj[i] });
console.log(arr_val2)
控制台打印结果:
["mochu", "feiniaomy.com", "20", "男"]
示例2:
var obj = { "name": "mochu", "host": "feiniaomy.com", "data": { "age": "20", "sex": "男" } };
var array = [];
for (var key in obj) {
array.push(obj[key]);
}
console.log(array);
打印结果:
["mochu", "feiniaomy.com", { age: "20", sex: "男" }]
js将对象转换成键与值对应存在的数组
示例1:JS简单的对象转换成数组的方法
var obj = { "name": "mochu", "host": "feiniaomy.com"};
var array = [];
for (var key in obj) {
array[key] = obj[key];
}
console.log(array);
打印结果:
[name: "mochu", host: "feiniaomy.com"]
示例2:JS复杂的对象转换成数组的方法
var obj = { "name": "mochu", "host": "feiniaomy.com", "data": { "age": "20", "sex": "男" }};
var array = [];
for (var key in obj) {
array[key] = obj[key];
}
console.log(array);
打印结果:
[name: "mochu", host: "feiniaomy.com", data: { age: "20", sex: "男" }]
注意:对于复杂点对象转成数组,转换的并不彻底,针对这种情况可以参考下面的示例!
示例3:
定义一个js对象转数组的函数
function objtoarray(obj){
var array = [];
for (var key in obj) {
//判断一下是否为对象
if (Object.prototype.toString.call(obj[key]) == '[object Object]') {
array[key] = objtoarray(obj[key]);
} else {
array[key] = obj[key];
}
}
return array;
}
调用函数
var obj = { "name": "mochu", "host": "feiniaomy.com", "data": { "age": "20", "sex": "男" } };
var array = objtoarray(obj);
console.log(array);