js中的数组方法 2021.09.18

基础数据类型:number、string、boolean、undefined、null

引用(复杂)数据类型:Array、function, Object

结论:简单类型存储的是值本身,复杂类型存储的是地址,如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。

栈内存:存放地址;     堆内存:存放地址指向的值;

不同类型的数据 进行比较 需要有转化 。具体规则 见下表:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness#%E4%B8%A5%E6%A0%BC%E7%9B%B8%E7%AD%89

数组操作的方法:

splice : 数组任意地方删除或者添加元素

splice(start, deletedCount)   删除元素

splice(start, deletedCount , item) 删除+添加,  第三个参数是在原来删除的位置上新加几个元素

splice(start, 0 , item)   就是在某个位置新加元素

array.push(元素);//从后面添加元素,返回新数组的length
array.pop();//从数组的后面删除元素,返回删除的那个元素
array.unshift(元素);//从数组的前面的添加元素,返回新数组的长度
array.shift();//从数组的最前面删除元素,返回删除的那个元素

-- 添加的都是返回长度
-- 删除的都是返回删除的元素

数组的拼接:concat:数组合并,不会影响原来的数组,会返回一个新数组。

数组的排序:array.sort();    //数组的排序,默认按照 字母/首字符 顺序排序 

数组的反转:array.reverse();   //翻转数组

数组和字符串的转换:array.join(分隔符)    //作用:将数组的值拼接成字符串,并且返回字符串

split:将字符串分割成数组(很常用)

新增的数组方法

indexOf  查找某个元素在数组中第一次出现的位置;

语法:arr.indexOf(元素,[开始查找的起始下标]);  # 返回值:如果找到了,就返回这个元素在数组中的下标,如果没有找到,就返回-1;

lastIndexOf(值)    通过数组的值获取相对应的下标出现的最后一次位置

every(function(值,下标,数组){})     判断数组中的每一个值是否满足需求

some(function(值,下标,数组){})     判断数组中的至少有一个值是否满足需求

forEach  用于遍历数组;这个方法没有返回值,纯粹的读操作,也不会改变原来数组的值。

语法:

arr.forEach(function(值, 下标, 当前数组){
    // 代码段
});

var arr = ['a', 'b', 'c'];
// forEach有2个参数:
// callback : 支持3个参数
// thisArg : 指定回调函数的this指向
arr.forEach(function callback(item, index, arr) {
   console.log(this == arr); // true 
   console.log(item, index);
}, arr);

map  遍历数组,并将每个元素传入回掉函数中处理后,返回新的数组,。(这个方法主要用于以同样的规则处理数组中的每个值,并组成新的数组返回)

语法:

arr.map(function(值,下标,当前数组){
    // 对v进行处理并返回处理后的每个v组成的数组
});

// map也自带遍历,遍历过程中 需要你返回一个新值 作为新数组中的元素
        var newArr = arr.map(function (item, index, arr) {
            // 回调函数 要求有返回值
            // return 1;
            // 基于原有值 修改,返回新值
            return item.toUpperCase();
        });
        console.log(newArr);

filter  遍历数组,根据过滤条件,筛选出数组中满足条件的元素,组成新数组并返回。(使用方法和功能跟map方法很像,只是运行规则不一样。map方法中的函数,用于返回新的元素,而filter方法中的函数,根据返回true或false来筛选元素)

语法:

arr.filter(function(值, 下标, 当前数组){
    // 筛选条件
});

reduce  归并,其中调用回掉函数,回掉函数中有两个参数,第一个参数是上一次操作的返回值,第二个参数是从第二个元素开始到最后一个元素。

语法:

arr.reduce(function(prev,next){
    // 逻辑代码
});

常见的伪数组:arguments、nodeList、htmlCollection

冒泡排序

相邻两个元素进行比较,将一个数组中的数字使用循环进行升序或降序的排列。

选择排序

降序:先找最大值,排在最左边,再找第二大的值,往左边靠...,已经排好的,不再参与比较

猜你喜欢

转载自blog.csdn.net/weixin_50163576/article/details/120420810