返回信息流如题
查询数据库两次分别得到两組结果集,都是json格式,字段key等等的都完全一致,只有value不一样
因为这里不能用union查询,所以需要合并结果集并去掉重复的
求相关js函数
感谢
这是一条镜像帖。来源:北邮人论坛 / www-technology / #35367同步于 2016/4/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
求一个合并JSON结果集并去重的js函数
xlcs
2016/4/10镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 glazard 的大作中提到: 】
: [code=js]
: import {unionBy} from 'lodash'
: res = unionBy(res0, res1, ({key}) => key)
: ...................
环境有限制。。不能载入任何库。。。
结贴:还是直接从jquery里搬运好:
$.extend = function() { //from jquery2
var options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
if (typeof target === "boolean") {
deep = target;
target = arguments[i] || {};
i++;
}
if (typeof target !== "object" && !$.isFunction(target)) {
target = {};
}
if (i === length) {
target = this;
i--;
}
for (; i < length; i++) {
if ((options = arguments[i]) != null) {
for (name in options) {
src = target[name];
copy = options[name];
if (target === copy) {
continue;
}
if (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {
if (copyIsArray) {
copyIsArray = false;
clone = src && $.isArray(src) ? src : [];
} else {
clone = src && $.isPlainObject(src) ? src : {};
}
target[name] = $.extend(deep, clone, copy);
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
};
刚发现,jquery的一传deep参数就报错。。。。于是自己写了个简单的,带去重功能,但是好像无效,请各位帮看下哪里写的有问题
function extendObj( s, d ) {
var temp = s;
for (var i = 0; i < d.length; i++) {
for (var n = 0; n < temp.length; n++) {
if ( temp[n].objectId == d[i].objectId ) continue; //通过比较JSON里的objectId这个key的值是否相同来去重
else temp.concat(d[i]);
}
}
return temp;
}
再更新!我真进步神速!最终代码来了:
function extendObj( s, d ) { //扩展对象
var temp = s;
var tLength = temp.length;
for (var i = 0; i < d.length; i++) {
for (var n = 0; n < tLength; n++) {
if ( temp[n].objectId == d[i].objectId ) break;
else {
if ( n == tLength-1 ) temp.push(d[i]);
else continue;
}
}
}
return temp;
}
再声明下:以上是超简单版本,适用性极差,只能合并类似
var s = [{"id":"1","title":"标题1"},{"id":"2","title":"标题2"}];
var d = [{"id":"3","title":"标题3"}];
这种结构的JSON结果集