js 实现json数组集合去重,差集,并集,交集。
let list = [
{
id: "1",
content: "A"
},
{
id: "2",
content: "B"
},
{
id: "3",
content: "C"
},
{
id: "4",
content: "D"
}
];
let arr = [
{
id: "1",
content: "C"
},
{
id: "2",
content: "D"
}
]; // let list = [1, 2, 3, 4, 5];
// let arr = [3, 4]; // 去重
function listRemoveRepeat(x) {
let result = [];
for (let i = 0; i < x.length; i++) {
let flag = true;
let temp = x[i];
for (let j = 0; j < result.length; j++) {
// 普通数组 (temp === result[j])
if (temp.id === result[j].id) {
flag = false;
break;
}
}
if (flag) {
result.push(temp);
}
}
return result;
}
// 差集
function listDifference(x, y) {
let clone = x.slice(0);
for (let i = 0; i < y.length; i++) {
let temp = y[i];
for (let j = 0; j < clone.length; j++) {
// 普通数组 (temp === clone[j])
if (temp.id === clone[j].id) {
clone.splice(j, 1);
}
}
}
return listRemoveRepeat(clone);
}
// 并集
function listConcat(x, y) {
return listRemoveRepeat(x.concat(y));
}
// 交集
function listIntersection(x, y) {
let result = [];
for (let i = 0; i < y.length; i++) {
let temp = y[i];
for (let j = 0; j < x.length; j++) {
// 普通数组 (temp === clone[j])
if (temp.id === x[j].id) {
result.push(temp);
break;
}
}
}
return listRemoveRepeat(result);
}
console.log("去重", listRemoveRepeat(list));
console.log("差集", listDifference(list, arr));
console.log("并集", listConcat(list, arr));
console.log("交集", listIntersection(list, arr));
js 实现json数组集合去重,差集,并集,交集。的更多相关文章
- 【python】集合 list差集|并集|交集
两个list差集 list(set(b).difference(set(a))) # b中有而a中没有的 示例: a=[1,2,3] b=[2,3] list(set(a).difference(se ...
- JS实现对数组的去重
JS实现对数组的去重 $scope.validateContect = function(text) { var arr = text; // 若传入的数据为string类型,用逗号分隔 if((ty ...
- 前端学习之——js解析json数组
** 前端学习之——js解析json数组** 解析json数组即对JSONArray的遍历 一.对于标准的json数组如: var result=[{"flag":1," ...
- js 获取json数组里面数组的长度
作为一个前端页面开发者第一次处理json数据,遇到了‘js 获取json数组里面数组的长度’?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋 ...
- .NET的求复杂类型集合的差集、交集、并集
前言 如标题所述,在ASP.NET应用程序开发中,两个集合做比较时 我们使用微软IEnumerable封装的 Except/Intersect/Union 取 差集/交集/并集 方法是非常的方便的: ...
- JS实现JSON数组合并和去重
var a=[{"id":"1001","name":"张三","age":"18&quo ...
- JS中json数组多字段排序方法(解决兼容性问题)(转)
前端对一个json数组进行排序,用户需要动态的根据自己的选择来对json数据进行排序. 由于后台表设计问题所以不能用sql进行排序,这里用到了js的sort方法. 如果对单字段排序,那么很简单,一个s ...
- js便利json 数组的方法
这篇文章主要介绍了JQuery遍历json数组的3种方法,本文分别给出了使用each.for遍历json的方法,其中for又分成两种形式,需要的朋友可以参考下 $(function () { var ...
- SQL集合运算 差集 并集 交
SQL-3标准中提供了三种对检索结果进行集合运算的命令:并集UNION:交集INTERSECT:差集EXCEPT(在Oracle中叫做 MINUS).在有些数据库中对此的支持不够充分,如MySql中只 ...
随机推荐
- Python全栈-magedu-2018-笔记10
第三章 - Python 内置数据结构 集set 约定 set 翻译为集合 collection 翻译为集合类型,是一个大概念 set 可变的.无序的.不重复的元素的集合 set定义 初始化 set( ...
- LeetCode 871 - 最低加油次数 - [贪心+优先队列]
汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处. 沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 s ...
- 报文分析6、ARP报头结构
ARP报头结构 硬件类型 协议类型 硬件地址长度 协议长度 操作类型 发送方的硬件地址(0-3字节) 源物理地址(4-5字节) 源IP地址(0-1字节) 源IP地址(2-3字节) 目标硬件地址(0 ...
- cve-2018-4878漏洞复现
CVE-2018-4878Flash 0day漏洞1.漏洞概述2018年2月1号,Adobe官方发布安全通报(APSA18-01),声明Adobe Flash 28.0.0.137及其之前的版本,存在 ...
- 【转】tars源码漫谈第1篇------tc_loki.h (牛逼哄哄的loki库)
loki库是C++模板大牛Andrei写的, 里面大量运用模板的特性, 而tc_loki.h借用了loki库的部分代码, 形成了一个基本的文件tc_loki.h, 来看看: #ifndef __TC_ ...
- python 函数enumerate(x,y)的用法
enumerate(x,y)函数是把元组tuple.字符串str.列表list里面的元素遍历和索引组合,其用法与range()函数很相似, 下面示例enumerate(x,y)用法以及range(x) ...
- iTerm2 与 Oh My Zsh的配套使用
详见: https://www.jianshu.com/p/7de00c73a2bb https://github.com/sirius1024/iterm2-with-oh-my-zsh https ...
- Word操作——通配符
参考资料:https://www.cnblogs.com/whchensir/p/5768030.html (1)查找引号中的内容 (“*”) ^p\1^p (2)按照句号,分号换行,当有引号时不换行 ...
- mysql 日期 字符串
Mysql 中字符串转时间跟Oracle略不同,函数为 str_to_date 应注意的是里面的大小写 如下: MySQL内置函数,在mysql里面利用str_to_date()把字符串转换为日期. ...
- Scala中foldLeft的总结
源码分析 def seq: TraversableOnce[A] 上面两段代码是scala.collection.TraversableOnce特质的foldLeft方法源代码,实现了Traversa ...