js数组操作方法总结(必看篇)

判断数值数组中各个数字出现的奇偶次数

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>数组操作</title>

</head>

<body>

<script type="text/javascript">

var arr=[3,1,2,2,1,3,1];

var sum=[];

var res=[];

var count=0;

var temp;

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

if(res.indexOf(arr[i])==-1){

res.push(arr[i]);

}

}

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

for(var j=0;j<arr.length;j++){

if(arr[j]==res[i]){

count++;

}

}

sum.push(count);

count=0;

}

console.log(res);//[3,1,2]

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

var str=(sum[i]%2==0)?"偶数":"奇数";

console.log(res[i]+"出现了"+sum[i]+"次");

console.log(res[i]+"出现了"+str+"次");

}

</script>

</body>

</html>

阿里笔试-数组操作-找出两个数组中不同的元素

<script type="text/javascript">

function diff(arr1,arr2){

var ress = [];

var arr = arr1.concat(arr2);

for(var i=0,len=arr.length;i<len;i++){

if((arr1.indexOf(arr[i])>=0 && arr2.indexOf(arr[i])<0) || (arr1.indexOf(arr[i])<0 && arr2.indexOf(arr[i])>=0)){

ress.push(arr[i]);

}

}

return ress;

}

var arr1 = [1,2,3,5,7,6];

var arr2 = [1,2,5];

var res = diff(arr1,arr2);

console.log(res);//[3, 7, 6]

</script>

数组去重

方法1

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>数组去重01</title>

</head>

<body>

<script type="text/javascript">

//给数组原型添加方法

Array.prototype.unique = function(){

var arr = [];

for(var i=0,i=this.length;i<len;i++){

if(arr.indexOf(this[i]) == -1){

arr.push(this[i]);

}

}

return arr;

};

console.log([1,2,3,2,5,6,3].unique());//[1, 2, 3, 5, 6]

</script>

</body>

</html>

方法2

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>数组去重02</title>

</head>

<body>

<script type="text/javascript">

Array.prototype.unique = function(){

var n = {},

r=[]; //n为哈希表,r为临时数组

for(var i = 0; i < this.length; i++) //遍历当前数组

{

if (!n[this[i]]) //如果hash表中没有当前项

{

n[this[i]] = true; //存入哈希表

r.push(this[i]); //把当前数组的当前项push到临时数组里面

}

}

return r;

}

console.log([1,2,3,2,5,6,3].unique());//[1, 2, 3, 5, 6]

</script>

</body>

</html>

方法3

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>数组去重</title>

</head>

<body>

<script type="text/javascript">

Array.prototype.unique = function(){

var arr = [this[0]];//结果数组

for(var i=1;i<this.length;i++){//从第二项开始遍历

if(this.indexOf(this[i]) == i){

//如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组

arr.push(this[i]);

}

}

return arr;

}

console.log([1,2,3,4,2,3,4].unique());// [1, 2, 3, 4]

</script>

</body>

</html>

方法4

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<title>filter</title>

<link rel="stylesheet" href="">

</head>

<body>

<script type="text/javascript">

var arr = [4,5,3,2,3,4,5,1];

function fn(num){

var res = num.filter(function(item,index,array){

return num.indexOf(item) === index;//num.indexOf(item)将会返回元素在数组第一次出现的位置

//对于多次出现的元素,除第一次外,其他情况都返回false

});

return res;

}

console.log(fn(arr));//[4, 5, 3, 2, 1]

</script>

</body>

</html>

方法5

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<title>Object 对象来当做哈希表</title>

<link rel="stylesheet" href="">

</head>

<body>

<script type="text/javascript">

function unique(a) {

var obj = {};

return a.filter(function(item) {//filter会返回true的项组成的成员

return obj.hasOwnProperty(item) ? false : (obj[item] = true);

});

}

var a = [1, 1, 3, 2, 1, 2, 4];

var res = unique(a);

console.log(res); // [1, 3, 2, 4]

</script>

</body>

</html>

以上是 js数组操作方法总结(必看篇) 的全部内容, 来源链接: utcz.com/z/325219.html

回到顶部