JavaScript-数组

  1. 概念:

是一种抽象的,可以用一个区间/范围中安排/放置一个或者多个数据,可以是字符串,可以是数字,各数据之间用逗号(,)间隔.

  1. 定义:

  1. let 变量=new Array();

  1. let 变量=[ ];

  1. 使用:

let arr=new Array(‘a’,’b’,’c’);

let arr=new Aarray('a','b','c')
console.log(arr)

let arr=[‘a’,’b’,’c’];

let arr=['a','b','c']
console.log(arr)

//此时输出正常

let arr=new Array(5)
console.log(arr)

此时浏览器会解析为5个空字符

let arr=[5]
console.log(arr)

此时依旧会解析为一个字符;

4. 特殊解释:

0为数组的第一个开始,最后一个为length-1,专业名称-下标;

length为数组的长度;

5. 基本操作:

  1. 更改数组中的内容:

let arr=['a','b','c','d']
arr[2]='2'
console.log(arr)

通过下标可以更改数组的内容;

  1. 删除数组中的内容

let arr=['a','b','c','d']
delete arr[1]
console.log(arr)

下边为1 的内容被删除,其他下标不变,长度也不会发生变化;

  1. 遍历数组:

遍历方式一:建议使用此方法

let arr = ["a","b","c","d"];
for(var x in arr){        //x为定义的变量
    console.log(arr[x]);//输出数组中所有数据
}

空的空间会遍历undefined

遍历方法二

var arr = ['a','b','c'];
arr[length] = 'd'
console.log(arr);
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}

6.基础类型:

[number/string/boolean/undefined/null]
  1. 存储类型:基础类型将值存在栈内存中;

  1. 基础类型赋值时,将值复制给另一个变量,修改其一不影响其二;

  1. 基础类型全等比较的时候,比较类型和值;

7.引用类型:

[]、function, {}
  1. 引用类型将值存在堆内存中,将堆内存的内存地址存在栈中;

  1. 引用类型赋值时,将栈中的地址复制给别的变量。当改变其中一个变量中的值,另一个变量中的值也会发生改变。

  1. 引用类型全等比较的时候比较栈中存的内存地址是否相同。

注意:直接给变量赋值,一定会将变量栈空间中内容清空,然后重新放入新数据

8.数组方法:

  1. unshift - 给数组开头添加一个或多个元素 - 返回数组新长度

var arr = ['a','b','c'];
var l = arr.unshift('d')
console.log(arr) // ['d','a','b','c']
console.log(l) // 4

2.push - 给数组的末尾添加一个或多个元素 - 返回数组新长度

var arr = ['a','b','c'];
var l = arr.push('d')
console.log(arr) // ['a','b','c','d']
console.log(l) // 4

3.shift - 删除数组的第一个元素 - 返回被删掉的元素

var arr = ['a','b','c'];
var ele = arr.shift()
console.log(arr) // ['b','c']
console.log(ele) // 'a'

4.pop - 删除数组最后一个元素 - 返回被删掉的元素

  var arr = ['a','b','c'];
  var ele = arr.pop()
  console.log(arr) // ['a','b']
  console.log(ele) // 'c'

5.splice - 对数组做增、删、改的操作

var arr = ['a','b','c']
// 改 - 参数1:开始下标;参数2:删除的个数;参数3:在删除的位置放上的新的元素 - 可以是多个
arr.splice(1,1,'d') // ['a','d','c']
// 增
arr.splice(1,0,'d') // ['a','d','b','c'] - 删除0个,就是不删除,然后放上新元素
// 删 - 第三个参数可以省略
arr.splice(1,0) // ['a','c']

6.concat - 数组的拼接

var arr = ['a','b','c'];
var brr = ['d','e','f'];
// 将arr和brr合成一个更大的数组
var crr = arr.concat(brr) // ['a','b','c','d','e','f']
// 将一个或多个值和数组合并成一个大数组
var crr = arr.concat(1,2,3)// ['a','b','c',1,2,3]

7.sort - 数组的排序

var arr = [9,5,3,7,1,6,4,8,2];
arr.sort() // 默认升序
console.log(arr) // [1,2,3,4,5,6,7,8,9]
arr.sort(function(a,b){ // a代表前面的数,b代表后面的数
    return a-b; // 升序 - 如果前面的数-后面的数>0,则交换位置
    return b-a; // 降序 - 如果后面的数-前面的数>0,则交换位置
})

8.reverse - 数组的反转

var arr = ['a','b','c'];
arr.reverse()
console.log(arr) // ['c','b','a']

9.join - 将数组中的元素使用指定的连接符连接在一起

var arr = ['a','b','c'];
var str = arr.join('_') // 参数是连接符
console.log(str) // a_b_c

var str = arr.join() // 默认使用逗号连接
console.log(str) // a,b,c

var str = arr.join('')
console.log(str) // abc

10.slice - 截取数组

var arr = ['a','b','c','d','e','f'];
// 将数组中的 'b','c','d'截取出来,组成新的数组
var brr = arr.slice(1,4) 
// 参数1是开始截取的下标,参数2是截取的结束下标,结果中不包含结束下标对应的元素
console.log(brr) // ['b','c','d']
// 如果省略第2个参数,默认从开始下标截取到数组末尾
var crr = arr.slice(1)console.log(crr) // ['b','c','d','e','f']

11.indexOf方法:查找某个元素在数组中第一次出现的位置

var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); // 2 - 查找数字5在数组中第一次出现的下标
console.log(arr.lastIndexOf(5)); // 5 - 查找数字5在数组中最后一次出现的位置
console.log(arr.indexOf(5,3)); // 5 - 从下标2开始查找数字5在数组中第一次出现的位置
console.log(arr.lastIndexOf(5,4)); // 2 - 从下标4开始查找数字5在数组中最后一次出现的下标
console.log(arr.indexOf("5")); // -1 - 数组中全是数字,找不到字符串5,所以返回-1

12.forEach方法:用于遍历数组

var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
    console.log(x + '|' + index + '|' + (a === arr));
});

13.map方法:遍历数组,并将每个元素经过函数处理后,形成新的元素,所有新元素组成新数组返回

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
    return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]

14.filter方法:将数组中满足指定条件的值,组成新的数组返回

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(v, index) {
    return v>5
}); 
console.log(arr2); //[6, 7, 8, 9, 10]

15.reduce方法:用于数组求和

arr.reduce(function(a, b){
    return a + b
});

16.some - 判断数组中是否至少有一个元素是满足指定条件的,返回布尔值

var arr = [68,95,78,56,86,63];
var bool = arr.some(function(v,i,a){
    return v<60;
});
console.log(bool); // true

17.every - 判断数组中是否所有元素都满足指定的条件,返回布尔值

var arr = [68,95,78,56,86,63];
var bool = arr.some(function(v,i,a){
    return v>60;
});
console.log(bool); // false

18.find - 查找数组中第一个满足指定条件的值,找到返回值,找不到返回undefined

var arr = [68,95,78,56,86,63];
var ele = arr.find(function(v,i,a){
    return v<60
})
console.log(ele); // 56

19.findIndex - 查找数组中满足条件的第一个对应的下标,找到返回下标,找不到返回-1

var arr = [68,95,78,56,86,63];
var index = arr.find(function(v,i,a){
    return v<60
})
console.log(index); // 3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值