js判断json数组合并指定json数据一样的数据形成新的json数组
JavaScipt
2019-07-09 17:14:35
开发中有时需要我们对一个json组成的数组进行这样的处理:json中特定属性名的属性值如果相同就合并相同的几条数据。如:
var arr = [
{id:0,"title":"六月"},
{id:1,"title":"六月初"},
{id:2,"title":"六月初博客"},
{id:3,"title":"六月"},
{id:4,"title":"六月博客站"}
]
合并title为六月的数据且id用逗号分隔;结果如图:
完整代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var arr = [
{id:0,"title":"六月"},
{id:1,"title":"六月初"},
{id:2,"title":"六月初博客"},
{id:3,"title":"六月"},
{id:4,"title":"六月博客站"}
]
var list = [];
var newArray = [];
for (var i = 0; i < arr.length; i++) {
var n = list.indexOf(arr[i].title);
if (n==-1) {
list.push(arr[i].title);
newArray.push(arr[i]);
} else {
newArray[n].id = newArray[n].id+","+arr[i].id;
}
}
console.log(newArray)
</script>
</body>
</html>
代码解析:
创建两个新的数据分别存储你需要判断是否相同的值(list)和新组成的数组(newArray)
循环需要判断的数组;通过indexOf方法来获取再list是否存在判断的属性值,
存在就拼接属性值的id
不存在就先将该属性值存入数组(list)中,再把当前数组存入新生成的数组中(newArray)
最后获取的newArray数组就是合并判断后的数组!
六月初字帖坊小程序
你想要的字帖模板及工具,这里都有!
880篇文章
2766人已阅读