数组的原生方法

本文详细介绍了JavaScript中数组的各种方法,包括push()、pop()、shift()、unshift()、sort()、reverse()、concat()、slice()、splice()、indexOf()、lastIndexOf()和join()等,解释了它们的功能并提供了示例。

数组在JavaScript中的应用十分之频繁,所以我做了一些笔记,方便以后看看

push()

定义和用法

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
注意: 新元素将添加在数组的末尾。
注意: 此方法改变数组的长度。

push()方法是在数组的末尾添加一个数,并返回修改数组后的长度

            var arr=[1,2,3];
            var arr1=arr.push(4);
            alert(arr);//1,2,3,4
            alert(arr1);//4 返回的length为4
pop()

pop()方法是在数组的末尾删除一个数,减少length的长度,并返回移除的项

            var arr=[2,3,5];
            var arr1=arr.pop();//5 返回移除的项
            alert(arr);//2,3
            alert(arr1);//5
shift()

shift()的作用是删除数组的第一项,并且返回被移除的数

            var arr=[1,2,3];
            var arr1=arr.shift();
            alert(arr);//2,3 数组的第一项被移除
            alert(arr1);//1 返回被删除的数
unshift()

unshift()是在数组的头部添加一项,返回的是数组的长度。

            var arr = [1, 2, 3];
            var arr1 = arr.unshift(4);
            alert(arr); // 4,1,2,3 向数组的头部添加了一项
            alert(arr1); //4  返回的是数组的length
sort()

定义和用法

sort() 方法用于对数组的元素进行排序。 排序顺序可以是字母或数字,并按升序或降序。 默认排序顺序为按字母升序。
注意:当数字是按字母顺序排列时”40”将排在”5”前面。 使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。

            var arr=['t','a','b','h','j'];
            var arr1=[45,12,3,7,67];
            alert(arr.sort());//a,b,h,j,t //字母按顺序排序
            alert(arr1.sort());//12,3,45,67,7 //数组按第一位大小进行排序

那么如何进行数字之间的排序呢?

            var arr1 = [45, 12, 3, 7, 67];
            var arr2 = arr1.sort(function(n1, n2) {
                if(n1 < n2) {
                    return -1;
                } else if(n1 > n2) {
                    return 1;
                } else {
                    return 0;
                }
            });
            alert(arr2);//3,7,12,45,67 

还有一种更加简单的写法,既然返回的数是负数,0,正数,那么将两个数相减也可以得到同样的效果。

            var arr1 = [45, 12, 3, 7, 67];
            var arr2 = arr1.sort(function(n1, n2) {
                return n1-n2;//如果n1<n2那么就返回负数,n1=n2就返回0,n1>n2便返回正数。
            });
            alert(arr2);//3,7,12,45,67 
reverse()

reverse() 方法用于颠倒数组中元素的顺序。

            var arr=[1,2,3,4,5];
            alert(arr.reverse());//5,4,3,2,1
concat()

concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

            var arr1=[1,2];
            var arr2=[3];
            var arr3=[4,5];
            alert(arr1.concat(arr2,arr3));//1,2,3,4,5
slice()

slice() 方法可从已有的数组中返回选定的元素,这个方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

            var arr=[1,2,3,4,5];
            alert(arr.slice(2,4));//3,4

slice() 方法不会改变原始数组。

splice()

splice() 方法用于插入、删除或替换数组的元素,这个方法会改变原始数组。返回值是被移除的数。

            var arr=[1,2,3,4,5];
            arr.splice(2,2,8);//第一个参数是从这个位置开始移除,第二个参数是移除多少个,如果设置为0就是不移除,第三个参数就是要插入的数,也可以不填,就是不插入
            alert(arr);//1,2,8,5
indexOf()和 lastIndexOf()

indexOf()用于查询数组里面的项,可以接收两个参数,第一个是要查询的项,第二个是从哪个位置开始查询(可选)

            var arr=[1,2,3,4,5];
            alert(arr.indexOf(3));//2 也就是3这个项目出现的位置是第2位,

lastIndexOf()就是从后往前找,和indexOf()差不多,都可以接收俩个参数

            var arr=[1,2,3,4,5,6,7,8];
            alert(arr.lastIndexOf(3));//2 从末尾开始查找 

两个方法都会返回项的位置,如果找不到就会返回-1。

join(参数)

这个方法能把数组变成字符串,只接受一个参数或者不接受参数,也就是分隔符。

            var arr=[2,3,4];
            var arr1=arr.join('-');//参数要用括号包裹
            var arr2=arr.join();//没有参数
            alert(arr1);//2-3-4
            alert(arr2);//2,3,4  这是一个字符串
            aler(arr);//2,3,4 原数组不受影响,这是个数组。

以上是我学习的笔记,还有一些数组的原生方法没有补充,就先这样吧!

JavaScript 中的数组提供了丰富的原生方法,这些方法可以分为以下几类: ### 数组转换方法 数组可以通过以下方法转换为字符串: - `toString()`:将数组转换为字符串,元素之间用逗号分隔。 - `toLocaleString()`:将数组转换为本地化字符串。 - `join(separator)`:使用指定的分隔符将数组元素连接成一个字符串,`separator` 是可选参数,用于指定分隔符[^2]。 ### 数组尾部操作方法 - `push(element1, ..., elementN)`:向数组的末尾添加一个或多个元素,并返回新的长度。 - `pop()`:移除数组的最后一个元素,并返回该元素的值[^3]。 ### 数组首部操作方法 - `unshift(element1, ..., elementN)`:在数组的开头添加一个或多个元素,并返回新的长度。 - `shift()`:移除数组的第一个元素,并返回该元素的值。 ### 数组重排序方法 - `reverse()`:反转数组元素的顺序。 - `sort(compareFunction)`:对数组元素进行排序,`compareFunction` 是可选参数,用于定义排序逻辑[^2]。 ### 数组合并方法 - `concat(array1, array2, ...)`:合并两个或多个数组,返回一个新的数组,不修改原数组。 ### 数组截取方法 - `slice(start, end)`:从数组中提取一部分元素,返回一个新的数组,不修改原数组,`start` 是起始索引,`end` 是结束索引(不包括该索引对应的元素)。 ### 数组插入/删除方法 - `splice(start, deleteCount, item1, ...)`:从数组中删除或添加元素,`start` 是起始索引,`deleteCount` 是要删除的元素个数,`item1, ...` 是要添加的元素[^5]。 ### 数组查找方法 - `indexOf(searchElement, fromIndex)`:查找指定元素数组中的第一个索引位置,`fromIndex` 是可选的起始索引。 - `lastIndexOf(searchElement, fromIndex)`:查找指定元素数组中的最后一个索引位置。 ### 数组迭代方法 - `forEach(callback)`:对数组中的每个元素执行一次提供的函数。 - `map(callback)`:创建一个新数组,其结果是对原数组中的每个元素调用一次提供的函数后的返回值。 - `filter(callback)`:创建一个新数组,包含所有通过测试的元素。 - `some(callback)`:检测数组中是否存在至少一个符合条件的元素。 - `every(callback)`:检测数组中的所有元素是否都符合条件[^2]。 ### 数组归并方法 - `reduce(callback, initialValue)`:对数组中的每个元素执行一个由您提供的归并函数(从左到右),将其结果汇总为单个返回值。 - `reduceRight(callback, initialValue)`:与 `reduce` 类似,但归并方向是从右到左。 ### 数组填充方法 - `fill(value, start, end)`:用一个固定值填充数组的一部分,`start` 是起始索引,`end` 是结束索引(不包括该索引)[^5]。 ### 数组裁剪方法 - `toSpliced(start, deleteCount, item1, ...)`:创建一个新数组,其中删除或添加元素,不修改原数组。`start` 是起始索引,`deleteCount` 是要删除的元素个数,`item1, ...` 是要添加的元素[^4]。 ### 数组反转方法 - `toReversed()`:创建一个新数组,其中元素顺序与原数组相反,不修改原数组。 ### 示例代码 ```javascript let arr = [1, 2, 3, 4, 5]; // 使用 join 方法 console.log(arr.join('-')); // 输出 "1-2-3-4-5" // 使用 push 方法 arr.push(6); console.log(arr); // 输出 [1, 2, 3, 4, 5, 6] // 使用 pop 方法 console.log(arr.pop()); // 输出 6 // 使用 unshift 方法 arr.unshift(0); console.log(arr); // 输出 [0, 1, 2, 3, 4, 5] // 使用 shift 方法 console.log(arr.shift()); // 输出 0 // 使用 reverse 方法 console.log(arr.reverse()); // 输出 [5, 4, 3, 2, 1] // 使用 sort 方法 arr = [5, 3, 8, 1]; console.log(arr.sort()); // 输出 [1, 3, 5, 8] // 使用 concat 方法 let arr2 = [6, 7, 8]; console.log(arr.concat(arr2)); // 输出 [5, 3, 8, 1, 6, 7, 8] // 使用 slice 方法 console.log(arr.slice(1, 3)); // 输出 [3, 8] // 使用 splice 方法 arr.splice(2, 1, 9); console.log(arr); // 输出 [5, 3, 9, 1] // 使用 indexOf 方法 console.log(arr.indexOf(9)); // 输出 2 // 使用 forEach 方法 arr.forEach((value) => { console.log(value); }); // 使用 map 方法 console.log(arr.map((value) => value * 2)); // 输出 [10, 6, 18, 2] // 使用 filter 方法 console.log(arr.filter((value) => value > 5)); // 输出 [9] // 使用 reduce 方法 console.log(arr.reduce((acc, value) => acc + value, 0)); // 输出 18 // 使用 fill 方法 arr.fill(0, 1, 3); console.log(arr); // 输出 [5, 0, 0, 1] // 使用 toSpliced 方法 let newArr = arr.toSpliced(1, 2, 6, 7); console.log(newArr); // 输出 [5, 6, 7, 1] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值