javascript,数组,相似
web前端-js教程
JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。android锁屏源码分析,vscode怎么换浏览器,ubuntu导出函数,tomcat的网站路径,爬虫全球疫情,go php扩展,专业的百度seo价格lzw
以上所述就是本文的全部内容了,希望大家能够喜欢。js 检测两个数组是否相似 //数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。 //数组的长度一致。 //类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window. function arraysSimilar(arr1, arr2){ //判断边界 if (!(arr1 instanceof Array),| !(arr2 instanceof Array)) { return false; } //判断长度 if (arr1.length != arr2.length) return false; var i = 0, n = arr1.length, countMap1 = {}, countMap2 = {}, t1, t2, TYPES = ['string', 'boolean', 'number', 'undefined', null, 'function', 'date', 'window']; for ( ; i < n; i++) { t1 = typeOf(arr1[i]); t2 = typeOf(arr2[i]); if (countMap1[t1]) { countMap1[t1] ++; }else{ countMap1[t1] = 1; } if (countMap2[t2]) { countMap2[t2] ++; }else{ countMap2[t2] = 1; } } function typeOf(ele){ var r; if (ele === null) r = 'null'; else if(ele instanceof Array) r = 'array'; else if(ele === window) r = 'window'; else if(ele instanceof Date) r = 'date'; else r = typeof ele; return r; } for (i = 0; i < TYPES.length; i++) { if (countMap1[TYPES[i]] != countMap2[TYPES[i]]) return false; } return true; } document.write(arraysSimilar([1,true], [false, 2]));
使用人人商城源码有风险吗,ubuntu的开源协议,用爬虫医院挂号,祭奠php,seo培训钱lzw