js中会改变原数组和不会改变原数组的方法

举报
FGGIT 发表于 2024/10/23 11:08:21 2024/10/23
【摘要】 js中会改变原数组的方法1. push( ) :数组的尾部添加一个或多个元素 并返回新的长度 // Base var arr = [123, 'hello', true, function () { }, {}]; arr.push('new data') console.log(arr); // [123, 'hello', true, ƒ, {…}, '...

js中会改变原数组的方法

1. push( ) :数组的尾部添加一个或多个元素 并返回新的长度

     // Base
     var arr = [123, 'hello', true, function () { }, {}];
     arr.push('new data')
     console.log(arr);  // [123, 'hello', true, ƒ, {…}, 'new data']
     
     // More
     var arr = [123, 'hello', true, function () { }, {}];  
     arr.push('a', 'b'); // 一次添加多个值
     console.log(arr);  // [123, 'hello', true, ƒ, {…}, 'a', 'b']

2. unshift( ) :数组的头部添加一个或者多个元素 并返回新的长度

 // Base
 var arr = [123, 'hello', true, function () { }, {}];
 arr.unshift('new data')
 console.log(arr);  // [ 'new data',123, 'hello', true, ƒ, {…}]
 
 // More
 var arr = [123, 'hello', true, function () { }, {}];
 arr.unshift('a', 'b')  // 一次添加多个值
 console.log(arr);  // [ 'a', 'b',123, 'hello', true, ƒ, {…}]

3. pop( ) :删除数组的最后一个元素并返回删除的元素

var arr = ["Banana", "Orange", "Apple", "Strawberry"];
arr.pop()
console.log(arr);  // ["Banana", "Orange", "Apple"]

4. shift( ) :删除数组的第一个元素并返回删除的元素

var arr = ["Banana", "Orange", "Apple", "Strawberry"];
arr.shift()
console.log(arr);  // ["Orange", "Apple", "Strawberry"]

5. reverse( ) :翻转数组的元素排序

var arr= ["Banana", "Orange", "Apple", "Strawberry"];
arr.reverse();
console.log(arr);  // ['Strawberry', 'Apple', 'Orange', 'Banana']

6. splice(index, num, item1, item2...) :从索引index处删除num个元素(num必须是数字 可以为0 如果没有规定num 则从index处开始删除到数组末尾的所有元素)item1,item2,item3...表示要添加到数组的新元素

var arr= ["Banana", "Orange", "Apple", "Strawberry"];
arr.splice(2,1,"Lemon","Pear");
console.log(arr);  // ['Banana', 'Orange', 'Lemon', 'Pear', 'Strawberry']

7. sort( ) :用于对数组的元素进行排序(可以是字母或者数字 并按升序或者是降序 默认为字母升序)


```javascript
 // 字母排序
    var arr = ["Banana", "Orange", "Apple", "Strawberry"];
    arr.sort();
    console.log(arr);  // ['Apple', 'Banana', 'Orange', 'Strawberry']
     
     
    // 数字升序
    var num = [40, 99, 21, 66, 25, 10];
    num.sort(function(a,b){
          return a-b
     });
    console.log(num);  // [10, 21, 25, 40, 66, 99]
     
     
    // 数字降序
    var num = [40, 99, 21, 66, 25, 10];
    num.sort(function(a,b){
           return b-a
     });
    console.log(num);  // [99, 66, 40, 25, 21, 10]


js中不会改变原数组的方法

1. concat( ) :用于连接两个或多个数组

var arr1 = [1, 2, 3]
var arr2 = ['a', 'b', 'c']
var arr3 = [{ name: 'Lisa', age: 18 }, { name: 'Jack', age: 20 }]
var result = arr1.concat(arr2, arr3)
console.log(result);   // [1, 2, 3, 'a', 'b', 'c',  {name: 'Lisa', age: 18}, {name: 'Jack', age: 20}]

2. every( ) :用于检测数组所有的元素是否都符合指定条件 每一个都满足条件 返回true 有一个不满足 就会返回false 并且剩下的元素不会再进行检测 返回值为布尔值

 var arr=[12, 5, 4, 66, 21, 99]
 var result = arr.every(function (item) {
       return item >20
   })
 console.log(result);  // false

3. some( ) :用于检测数组中的元素是否满足指定条件 有一个元素满足条件 返回true 剩下的元素不会再进行检测 如果没有满足条件的元素 则返回false 返回值为布尔值

var arr = [12, 5, 4, 66, 21, 99]
var result = arr.some(function (item) {
     return item > 20
   })
console.log(result); // true

4. filter( ) :'过滤 筛选' 创建一个新的数组 新数组中的元素是通过检查指定数组中符合条件的所有元素 结果为true则保存新的数组中 结果为false则过滤掉

  var arr = [10, 236, 'hi', true, function () { }, { name: '张三' }];
  var result = arr.filter(function (item) {
            return typeof item == 'number' || typeof item == 'boolean' || item instanceof Function;
        });
  console.log(result);  // [10, 236, true, ƒ ()]

5. map( ) :'映射' 返回一个新数组 数组中的元素为原始数组元素调用函数处理后的值

var arr =[1, 2, 3, 4, 5, 6]
var result = arr.map(function (item) {
    return item + 'hi'
})
console.log(result);  // ['1hi', '2hi', '3hi', '4hi', '5hi', '6hi']

6. reduce( ) :接收一个函数作为累加器 数组中的每个值(从左到右)开始缩减 最终计算为一个值

语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

total为初始值 currentValue为当前元素  currentIndex为当前元素的索引 arr为数组本身  initialValue为传递给函数的初始值

 var arr = [1, 2, 3, 4, 5, 6]
 var result = arr.reduce(function (total,currentValue,currentIndex,arr) {
        return total + currentValue
    },10)
 console.log(result);  // 31

7. indexOf( ) :返回数组中某个指定的元素位置 (从索引为0开始 检查数组中是否包含有某个值 有则返回匹配到的第一个索引 没有则返回-1)

var arr = ["Banana", "Orange", "Apple", "Strawberry"];
var result = arr.indexOf('Orange');
console.log(result);  // 1

8. lastIndexOf( ) :返回一个指定的元素在数组中最后出现的位置 从该字符串的后面向前查找 (有则返回匹配到的第一个索引 没有则返回-1)

var arr = ["Banana", "Orange", "Apple", "Strawberry", "Apple", "Orange"];
var result = arr.lastIndexOf('Orange');
console.log(result);  // 5

9. forEach( ) :用于调用数组的每个元素,并将元素传递给回调函数 (循环遍历数组 参数是一个函数“回调函数” 函数的3个参数(1.当前元素 2.数组的索引 3.数组本身))

var arr = [10, 236, 'hi', true, 'hello'];
arr.forEach(function (item, index, arr1) {
        console.log('index为' + [index], 'item为' + item);  
        // index为0 item为10  
        // index为1 item为236 
        // index为2 item为hi 
        // index为3 item为true 
        // index为4 item为hello
  })

10. join(separator) :用于把数组中的所有元素转换一个字符串 (separator表示要使用的分隔符 如果省略 则使用逗号隔开 如果为空字符串 则使用空格隔开 )

// 填写参数
var arr = ["Banana", "Orange", "Apple", "Pear"];
var result = arr.join(" and ");
console.log(result);  // Banana and Orange and Apple and Pear
 
// 不写参数
var arr = ["Banana", "Orange", "Apple", "Pear"];
var result = arr.join();
console.log(result);  // Banana,Orange,Apple,Pear

11. slice(start,end) :从已有的数组中返回选定的元素 (start表示从哪里开始 如果为负数 就从倒数的第几个元素开始提取 end表示从哪里结束 如果没有指定 那么切分的数组从start到结束的所有元素 如果为负数 表示在原数组中的倒数第几个元素结束抽取)

 var arr = ["Banana", "Orange", "Apple", "Strawberry", 'Pear', 'Lemon'];
 var result = arr.slice(1, 3);
 console.log(result);   // ['Orange', 'Apple']
  
 
 var arr = ["Banana", "Orange", "Apple", "Strawberry", 'Pear', 'Lemon'];
 var result = arr.slice(-3);  // slice(-3) 表示提取原数组中的倒数第三个元素到最后一个元素(包含 最后一个元素)
 console.log(result);   // ['Strawberry', 'Pear', 'Lemon']
 
 
 var arr = ["Banana", "Orange", "Apple", "Strawberry", 'Pear', 'Lemon'];
 var result = arr.slice(-2,-1);  // slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)
 console.log(result);    // ['Pear']

12. toString( ) :将数组中的元素用逗号拼接成字符串 返回拼接后的字符串

 var arr = [1, 2, 3];
 arr.toString();
 console.log(arr);  //  [1, 2, 3]

13. valueOf( ) :返回数组对象的原始值

var arr = ["Banana", "Orange", "Apple", "Pear"];
arr.valueOf(); 
console.log(arr);  // ['Banana', 'Orange', 'Apple', 'Pear']
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。