两道很有意思的JS面试题,对数组的操作,想听听大家的解决方法? 有两个数组,数组a是有序的,数组b是乱序的,把b插入a中,插入后的新数组a仍然是有序的,怎么样更高效?
javascript计算数组重复元素个数,并计算个数 楼上的回答,如果只针对题主的需求,应该可以解决问题了。但是,如果考虑的更全面些,我们应该考虑到JS数组中的数据类型可以是多样的(有可能是Object、Array、String.)所以我写了一个比较复杂的,效率可能比较低,可以慢慢优化:(function(){function isObject(o){return Object.prototype.toString.call(o)='[object Object]';}function isArray(o){return Object.prototype.toString.call(o)='[object Array]';}function duplicate(arr){var tmp;if。arr|arr.length=0){return[];}for(var i=0,len=arr.length;i;i+){tmp=arr[i];if(isArray(tmp)){for(var j=i+1;j;j+){if(isArray(arr[j])&tmp.length=arr[j].length){var flag=false;for(var k=0;k;k+){if(tmp[k]。arr[j][k]){flag=true;break;}}if。flag){arr.splice(j,1);len-;j-;}}}} else if(isObject(tmp)){for(var j=i+1;j;j+){if(isObject(arr[j])){var tmpKey=[],objKey=[],flag=false;for(var k in tmp){tmpKey.push(k);}for(var l in arr[j]){objKey.push(l);}if(tmpKey.length=objKey.length){for(var key in tmp){if(tmp[key]。arr[j][key]){flag=true;break;}}}if。。
JS怎么查找数组重复值? 先对数组进行排序(使用sort函数),此时重复值一定是相邻的然后遍历排序后的数组,检查相邻的项是否相等就行了