数组去重
// 定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中
function unique(arr) {
var res = [arr[0]];
for (var i = 0; i < arr.length; i++) {
var repeat = false;
for (var j = 0; j < res.length; i++) {
if (arr[i] == res[j]) {
repeat = true;
break;
}
}
if (!repeat) {
res.push(arr[i]);
}
}
return res;
}
// 思路:每次取出原数组的元素,然后再对象中访问这个属性,如果存在就说明重复
function unique(arr) {
var res = [];
var json = {};
for (var i = 0; i < arr.length; i++) {
if (!json[arr[i]]) {
res.push(arr[i]);
json[arr[i]] = 1;
}
}
return res;
}
// 利用下标查询
function unique(arr) {
var newArr = [arr[0]];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
// 两个数组中相同的元素和不同的元素
// 合并两数组,并删除重复元素(代码类似于数组去重,只不过都是比较两个数组)
对数组进行反转
function reverae(arr) {
var j = arr.length - 1;
for (var i = 0; i < arr.length; i++) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
j--;
}
}
获取数组中连续的元素
function fn(arr){
var result = [],
i = 0;
result[i] = [arr[0]];
arr.reduce(function(prev, cur){
cur-prev === 1 ? result[i].push(cur) : result[++i] = [cur];
return cur;
});
return result;
}
数组合并(先排序,再合并)
// 合并两个有序数组
function mergeOrder(arr1,arr2) {
var result = arr1 +arr2;
var m = 0;
var n = 0;
for (var i = 0; i < result.length; i++) {
if (m == arr1.length) {
result[i] = arr2[n++];
}else if (n==arr2.length) {
result[i] = arr1[m++];
}else{
if (arr1[m] < arr2[n]) {
result[i] = arr1[m++];
}else{
result[i] = arr2[n++];
}
}
}
return result;
}