javascript数组总结

1、数组的概念

数组,是指一组数据的集合,其中每个数据被称为元素,数据中心可以存放任意的元素。

数组是一种将一组数据存储在单个变量下的方式。

2、创建数组的两种方式

1、利用数组字面量

var arr=[1,2,3];

2、利用new Array(3)创建数组(里边有三个空的元素)

new arr=new Array();
new arr=new Array(3);

 注意:数组名【下标(下标从0开始)】

            数组可以通过索引(下标)来访问、设置、修改对应的数组元素

3、数组方法

1、向数组的末尾添加一个或多个元素

var arr=['一','二','三','四'];
var newArrayLength=arr push('五','六');
console.log(arr);
console.log('新的数组长度'+newArrayLength);

2、删除并返回数组的最后一个元素

var arr=['一','二','三','四'];
var lstArr = arr.pop();
console.log(arr);
console.log('被删除的元素:'+lstArr);

3、向数组的开头添加一个或多个元素,并返回新的数组长度。

var arr=['一','二','三','四'];
var newArrayLength = arr.unshift('五', '六');
console.log(arr);
console.log('新的数组长度' + newArrayLength);

4、删除数组中的一个元素,并返回删除的元素。

var arr=['一','二','三','四'];
var fstArr = arr.shift();
console.log(arr);
console.log('被删除的元素:'+fstArr);

5、判断当前对象是不是数组。

var arr=['一','二','三','四'];
arr ='这是一个数组吗?';
alert(Array.isArray(arr));

6、map方法返回一个新的数组,数组中的元素为原始数组的处理后的值

map 方法会按照原始数组中的元素顺序依次处理元素

let array = [1,9,3,7,5];
let newArray =  array.map(x=>x+2);
console.log(array);
console.log(newArray);

7、filter 方法创建一个数组,新的数组中的元素是通过检查指定数组中符合条件的元素

filter:不会得空的数组进行检测;不会改变原始数组。

let array = [1,2,3,4,5];
let newArray = array.filter(item=> item > 2);
console.log(array);
console.log(newArray);

8、some 用于检测数组中的元素是否满足指定的条件,会依次执行数组中每个元素

如果有一个元素满足要求,则返回true;如果没有满足条件的元素,返回false。

let array = [1,2,3,4,5];
let newArray = array.some(item => item>2);
console.log(array);
console.log(newArray);

9、splice 用于添加或者删除数组中的元素 ,.splice(开始下标,长度);

注意:这个方法会改变原始数组。如果没有删除任何数组,则返回空数组。

let array = [1,2,3,4,5,6,7,8,9];
let newArray = array.splice(2,4);
//替换下标4的元素为 6,7
let newArray = array.splice(4,1,6,7);
//在下标9的位置 插入元素 10,11
let newArray = array.splice(9,0,10,11);
console.log(array);
console.log(newArray);

10、slice方法可以从已有数组重返回选定的元素

可以提取字符串,并返新的字符串被提取的部分(不会改变原数组)   

let array = [1,2,3,4,5,6,7,8,9];
let newArray =array.slice(1,4);
let newArray =array.slice(-3,-1);
console.log(array);
console.log(newArray);

11、indexOf 方法可以返回某个字符串在字符串中出现的位置

如果没有,则返回-1,如果存在,则返回下标

var str = '你今天中午吃了什么?';
var index =  str.indexOf('了');
console.log(index)

let array = [1,2,3,4,5,6,7,8,9];
let index = array.indexOf(4);
console.log(index)

12、includes 用于判断数组中是否包含了一个指定的值

如果有返回true,否:false

let array = [1,2,3,4,5,6,7,8,9];
let bool = array.includes(1);
console.log(bool)

4、数组元素新增

1、新增数组元素,修改length长度

var arr = ['red','green','blue'];
console.log("数组长度:"+arr.length);
arr.length = 5;
console.log(arr);
console.log(arr[3]);
console.log(arr[4]); 
arr[3] ='pink';
arr[4] = 'hotpink';
console.log(arr[3]); 
console.log(arr[4]);
arr[0] = 'yellow'
console.log(arr[0]);
arr[5] = 'yellow';
console.log(arr); 
arr = '有点意思';
console.log(arr);

注:指定长度为5,新增下标为5,意味着数组长度扩展到了6位。

Javascript数组长度是动态的。

不能给数组名赋值,否则数组会被覆盖。

5、数组筛选

1、筛选数组

var arr=[***];
var newArr = [];
        var index = 0;
        for (let i = 0; i <arr.length ; i++) {
            if(arr[i]>=10){
                newArr[index] = arr[i];
                index++;
            }
        }
        console.log(newArr);

2、获取最大值最小值

var arr=[***];
let max = arr[0];
      let min = arr[0];
      for (let i = 0; i < arr.length; i++) {
          if(max < arr[i] ){
              max = arr[i];
          }
          if(min > arr[i] ){
              min = arr[i];
          }
      }
      console.log('最大值:'+max+',最小值:'+min);

3、翻转数组

for (let i = arr.length-1; i >=0 ; i--) {
         console.log(arr[i]);

4、数组排序

var ascArr = arr.sort((a, b) => {
if (a < b) {
 return -1;
}
 if (a > b) {
 return 1;
   }
   return 0;
});
 console.log(ascArr);

5、冒泡排序 下沉算法

for (let i = 0; i < numArr.length-1; i++) {
        for (let j = 0; j < numArr.length-i-1; j++) {
            // 前一个元素 和 后一个元素 比较
            // 如果前一个元素 大于后一个元素 两者交换位置
            if(numArr[j] >numArr[j+1]){
                var temp = numArr[j];
                numArr[j] = numArr[j+1];
                numArr[j+1] = temp;
            }
        }
    }
    console.log(numArr)


                
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值