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>

就是将一个数组中的对象,它的属性值拆分出来之后,属性名和属性值分别起个名之后生成一个新的对象,然后存储到一个数组里,输出这样子~PS:属性名字符串它自动加的引号

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值