js对象数组拆分
刚刚有个⼩伙伴提出了个问题,觉得挺有意思的,分享下~
他的要求是这样滴:
var source_arr = [{"早上":5,"中午":1608,"晚上":357,"中午和晚上":217}];
// 上⾯这个对象要转换成下⾯这样
var out_arr = [{name:"早上",value:5},{name:"中午",value:1608},{name:"晚上",value:357},{name:"中午和晚上",value:217}];
原本合计很简单点事⼉嘛,循环累加就完了呗,没成想,竟想了好⼀阵~
不废话,直接上码!
<script type="text/javascript">
var source_arr = [{"早上":5,"中午":1608,"晚上":357,"中午和晚上":217}];
// 上⾯这个对象要转换成下⾯这样
//[{name:"早上",value:5},{name:"中午",value:1608},{name:"晚上",value:357},{name:"中午和晚上",value:217}]
console.log("原始数据是对象数组:"+source_arr);
var obj = source_arr[0];
console.log("获取第⼀个对象【它只有⼀个对象】:"+obj);
var out_arr = []; //创建⼀个数组
for(var key in obj){
var temp = {}; //创建临时对象
temp.name = key; //存储对象的Key为name
temp.value = obj[key]; //存储value
out_arr.push(temp);
// console.log(key,obj[key]);
}
console.log("提取name:"+out_arr[0].name);
var res = JSON.stringify(out_arr); //转换json
console.log("转换输出:"+res);
</script>
js获取json的key和value就是将⼀个数组中的对象,它的属性值拆分出来之后,属性名和属性值分别起个名之后⽣成⼀个新的对象,然后存储到⼀个数组⾥,输出这样⼦~PS:属性名字符串它⾃动加的引号
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论