欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

javascript交集,兩個數(shù)組的交集js

javascript中,對于元素是對象的數(shù)組,用underscore取不到交集?為什么?

原因是:

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比蘭山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式蘭山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋蘭山地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

intersection求交集不是深比較,

所以只能傳遞基本類型的數(shù)據(jù),不能傳遞對象作為參數(shù)。

有了這個方法就可以實現(xiàn)取對象的交集了。

function isDate(value) {

return Object.prototype.toString.call(value) === '[object Date]';

}

function isRegExp(value) {

return Object.prototype.toString.call(value) === '[object RegExp]';

}

function isFunction(value) {

return typeof value === 'function';

}

function equals(o1, o2) {

if (o1 === o2) return true;

if (o1 === null || o2 === null) return false;

var t1 = typeof o1, t2 = typeof o2, length, key, keySet;

if (t1 == t2) {

? ?if (t1 == 'object') {

? ? ? ?if (Array.isArray(o1)) {

? ? ? ? ? ?if (!Array.isArray(o2)) return false;

? ? ? ? ? ?if ((length = o1.length) == o2.length) {

? ? ? ? ? ? ? ?for (key = 0; key length; key++) {

? ? ? ? ? ? ? ? ? ?if (!equals(o1[key], o2[key])) return false;

? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ?return true;

? ? ? ? ? ?}

? ? ? ?} else if (isDate(o1)) {

? ? ? ? ? ?if (!isDate(o2)) return false;

? ? ? ? ? ?return equals(o1.getTime(), o2.getTime());

? ? ? ?} else if (isRegExp(o1) isRegExp(o2)) {

? ? ? ? ? ?return o1.toString() == o2.toString();

? ? ? ?} else {

? ? ? ? ? ?//if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || Array.isArray(o2)) return false;

? ? ? ? ? ?keySet = {};

? ? ? ? ? ?for (key in o1) {

? ? ? ? ? ? ? ?if (key.charAt(0) === '$' || isFunction(o1[key])) continue;

? ? ? ? ? ? ? ?if (!equals(o1[key], o2[key])) return false;

? ? ? ? ? ? ? ?keySet[key] = true;

? ? ? ? ? ?}

? ? ? ? ? ?for (key in o2) {

? ? ? ? ? ? ? ?if (!keySet.hasOwnProperty(key)

? ? ? ? ? ? ? ? ? ?key.charAt(0) !== '$'

? ? ? ? ? ? ? ? ? ?o2[key] !== undefined !isFunction(o2[key])) return false;

? ? ? ? ? ?}

? ? ? ? ? ?return true;

? ? ? ?}

? ?}

}

return false;

}

function intersection(array) {

var result = [];

var argsLength = arguments.length;

for (var i = 0; i argsLength; i++) {

? ?var item = array[i];

? ?if (contains(result, item)) continue;

? ?for (var j = 1; j argsLength; j++) {

? ? ? ?if (!contains(arguments[j], item)) break;

? ?}

? ?if (j === argsLength) result.push(item);

}

return result;

}

function contains(obj, target) {

if (obj == null) return false;

var flag = false;

for (var i = 0; i obj.length; i++) {

? ?if (equals(obj[i], target)) {

? ? ? ?flag = true;

? ?}

}

return flag;

}

var a = [{name: 'huge', age: 23}, {name: 'lee', age: 24}];

var b = [{name: 'huge', age: 23}, {name: 'd', age: 24}];

var c = intersection(a, b);

console.log(c);

可以根據(jù)需要自行刪減代碼。

在 JavaScript 中,如何求出兩個數(shù)組的交集和差集?

相同的a.filter(function(v){returnb.indexOf(v)-1})不同的 a.filter(function(v){ return !(b.indexOf(v) -1) }).concat(b.filter(function(v){ return !(a.indexOf(v) -1)}))

JS怎么判斷出兩個DIV塊是否有交集

最小的y坐標(biāo)或者最大的y坐標(biāo)是否在另一個div的倆y坐標(biāo)之間,

最小的x坐標(biāo)或者最大的x坐標(biāo)是否在另一個x坐標(biāo)之間,

列如:

div1={x11,x12,y11,y12}

div2={x21,x22,y21,y22}

if(((x21x11x11x22)||(x21x12x12x22))((y21y11y11y22)||(y21y12y12y22))){

console.log(有交集);

}

這個是很笨的方法,,希望你有更好的思路

本文標(biāo)題:javascript交集,兩個數(shù)組的交集js
文章源于:http://chinadenli.net/article10/dsdiogo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、小程序開發(fā)、網(wǎng)站制作用戶體驗、企業(yè)建站、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管