数组方法

创建一个数组;

var arry = new Array();

arry[0] = 11;
arry[1] = 12;
arry[2] = 13;
arry[3] = 14;
arry[4] = 15;

 通常用以下语法创建:

var arry = [11,12,13,14,15];

 

arry[8] = 199;
console.log(arry.length); // 9
console.log(arry); // 11,12,13,14,15,,,,199
arry.length = 3;
console.log(arry); // 11,12,13

 

数组方法:(可复制到编辑器验证)

//1.push() 向数组末尾添加一个或多个元素,返回新数组长度
var arry = [11,12,13,14,15];
var result = arry.push(16,17);
console.log(arry); // 11,12,13,14,15,16,17
console.log(result); //7

//2.pop() 向数组末尾删除一个元素 返回被删那个元素
var arry = [11,12,13,14,15];
var result = arry.pop();
console.log(arry); // 11,12,13,14
console.log(result); //15

//3.unshift() 向数组开头添加一个或多个元素,返回新的数组长度
var arry = [11,12,13,14,15];
var result = arry.unshift(9,10);
console.log(arry); // 9,10,11,12,13,14,15
console.log(result); //7

//4.shift() 向数组开头删除一个元素,返回被删除那个元素
var arry = [11,12,13,14,15];
var result = arry.shift();
console.log(arry); // 12,13,14,15
console.log(result); // 11

//5.slice() 从数组中提取指定元素,不影响原数组,返回截取的元素
// 第一个参数:开始截取位置的索引,包含此位置元素,第二个参数:结束截取位置的索引,不包含此位置元素
var arry = [11,12,13,14,15];
var result = arry.slice(1,3);
console.log(arry); // 11,12,13,14,15
console.log(result); // 12,13
//只写一个值,则从索引为2位置(包含)一直截取到结束
var result = arry.slice(2);
console.log(result); // 13,14,15

//6.splice() 向数组添加元素或者删除元素,影响原数组,返回被删除的元素
//第一个参数,开始删除位置的索引,从此位置删(包含),第二个参数,是删除的数量
//第三个参数,传新的元素,插入到开始索引前边
var arry = [11,12,13,14,15];
var result = arry.splice(1,3,"test1","test2");
console.log(arry); // 11,test1,test2,15
console.log(result); //12,13,14

//7.concat() 连接两个或多个数组,不影响原数组,并返回新数组
var arry1 = [11,12,13,14,15];
var arry2 = ["test1","test2","test3"];
var result = arry1.concat(arry2);
console.log(arry1); // 11,12,13,14,15
console.log(result); // 11,12,13,14,15,test1,test2,test3

//8.join() 将数组转换成字符串,不会影响原数组,返回转换后的字符串
//join里加参数,会用加的参数作为连接符,若不写,默认用逗号(,)连接
//若不想用的话,传一个空串
var arry = [11,12,13,14,15];
var result = arry.join();
console.log(arry); //11,12,13,14,15
console.log(result); // 11,12,13,14,15
console.log(typeof result); //string
var result1 = arry.join("@");
console.log(result1); // 11@12@13@14@15
var result2 = arry.join("");
console.log(result2); // 1112131415

//9.reverse() 将数组反转(前边到后边,后边到前边,会影响原数组
var arry = [11,12,13,14,15];
arry.reverse();
console.log(arry); // 15,14,13,12,11

//10.sort() 将数组进行排序,会影响原数组
var arry = ["a","d","f","b","c"];
arry.sort();
console.log(arry); // a,b,c,d,f
//默认按照Unicode编码进行排序
var arry1 = [5,3,6,2,11,4];
arry1.sort();
console.log(arry1); // 11,2,3,4,5,6
//使用下面方法可以升降序正常排序
arry1.sort(function(a,b){
return a - b;
})
console.log(arry1); // 2,3,4,5,6,11

//用sort()排序对象数组

var objarry = [

  {id:1,name:"小明",age:18,score:100},

  {id:4,name:"小军",age:15,score:90},

  {id:3,name:"小红",age:17,score:70},

  {id:2,name:"小蓝",age:16,score:80},

  {id:5,name:"小黄",age:19,score:88}

]

//需求1,按照年龄进行排序

function sortRule(a,b){

  return a.age - b.age;

}

var result = objarry.sort(sortRule);

console.log(result);  //输出如下图

 //需求2 利用sort去排序对象数组(按输入(id,age,score)排序)

var objarry = [

  {id:1,name:"小明",age:18,score:100},

  {id:4,name:"小军",age:15,score:90},

  {id:3,name:"小红",age:17,score:70},

  {id:2,name:"小蓝",age:16,score:80},

  {id:5,name:"小黄",age:19,score:88}

]

function sortBy(file){

  return function(a,b){

    retutn a[file] - b[file];

  }

}

var resutl = objarry.sort(sortBy("id"));  //输出如下图

console.log(resutl )

 

 

var resutl = objarry.sort(sortBy("age")); //输出如下图

console.log(resutl )

 

 

var resutl = objarry.sort(sortBy("score")); //输出如下图

console.log(resutl )

 

 

 

 

 

 

//数组遍历
var arry = [11,12,13,14,15];
for(var i=0; i<arry.length; i++){
console.log(arry[i]);
}

//forEach方法遍历数据(ie8以下不支持),回调函数第一参数,是数组元素,第二个参数,是数组索引
arry.forEach(function(value,index,obj){ //function称为回调函数,浏览器自己调用的
//console.log("hello");
//console.log(value);
//console.log(index)
})

//数组去重 splice() 

var arry = [1,2,3,5,2,1,6,6,3,6];

function unique(arr){

  if(!Array.isArray(arr)){
    console.log(“type Error”);

    return;  

  }

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

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

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

        arr.splice(j,1);

        j--;

      }

    }

  }

  return arr;

}

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

 

//数组去重 indexOf()

var arry = [1,2,3,5,2,1,6,6,3,6];

function unique(arr){

  if(!Array.isArray(arr)){

    console.log("type Error");

    return;

  }

  var a = [];

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

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

      a.push(arr[i]);

    }

  }

  return a;

}

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

 //js判断是不是回文字符串

function unique(str){

  var str2 = str.split('').reverse().join('');

  return str === str2;

}

var a = unique('aabbcc');

console.log(a); //false 说明不是回文字符串

var a1 = unique('aabbaa');

console.log(a1); //true 说明是回文字符串 

 

 

 

 

 

 

 

 

posted on 2021-03-07 00:24  Zero前端  阅读(105)  评论(0)    收藏  举报

导航