1.数组去重
将两数组合并,去掉重复元素
var arr1 = [1, 2, 3, 4];
var arr2 = [1, 3, 5, 6];
方法一
for(var index in arr1){
var common=arr2.indexOf(arr1[index]);
if(common!=-1){
arr2.splice(common,1);
}
}
console.log(arr1.concat(arr2)); //[1,2,3,4,5,6]
方法二
var list=arr1.concat(arr2);
console.log(list);
for(var i=0;i<list.length;i++)
{
//默认拿一个 和后边每位进行对比 相同删除
var nowDate=list[i];
for(var j=i+1;j<list.length;j++)
{
if(nowDate==list[j]){
list.splice(j,1);
j--;
}
}
}
console.log(list);
方法三
var list=arr1.concat(arr2);
console.log(list);
for(var i=0;i<list.length;i++)
{
var now=list[i];
var findindex=list.slice(i+1,list.length).indexOf(now);
if(findindex!=-1){
list.splice(i,1);
i--;
}
}
console.log(list);
2.找缺失值
找数组内部缺失值 数组值是连续的
var arr=[1,4,7,2,6,9,5,0];
//数学对象方法 min max
//call:传递的参数是序列型 apply:传递的参数是集合型
//修改方法内部对象指针 传递参数
var min=Math.min.apply(null,arr);
var max=Math.max.apply(null,arr);
for(var i=min;i<max;i++){
if(arr.indexOf(i)==-1){
console.log(i); // 3 8
}
}
3.数组拆分
把多为数组 拆为一维数组
var arr=[1,[2,3],[[4,5,6],[7,8,9]],[[[10,11]],[[12,13]]]];
var list=[];
function NewArray(array){
for(var i=0;i<array.length;i++)
{
//检测是不是数组
if(Array.isArray(array[i]))
{
NewArray(array[i]);
}
else{
//添加当前不是数组的值;
list.push(array[i]);
}
}
}
NewArray(arr);
console.log(list); // 1,2,3,4,5,6,7,8,9,10,11,12,13
4.统计最多字符
统计字符串里面那个字符最多,有几个
var str = 'abcdacbdsabsadbsadbasbdnmsanbkkkkkkkk';
var save = [];
for (var k = 0; k < str.length; k++) {
var char = str.charAt(k);
var count = 1;
//找当前的 在字符串内部相同的个数
for (var i = k + 1; i < str.length; i++) {
if (char == str[i]) {
count++;
var arr = str.split("");
arr.splice(i, 1);
str = arr.join("");
i--;
}
}
if (count > save[1]) {
save = [];
save[0] = char;
save[1] = count;
}
else if (count == save[1]) {
save.push(char);
save.push(count);
}
if (k == 0) {
save.push(char);
save.push(count);
}
}
console.log(save); // "k" 8