js 数组用法

1. join()

             join() 方法将所有数组元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用','号分割,不改变原数组

1 const arr =[1,2,3,4]
2 console.log(arr.join())  // 1,2,3,4
3 console.log(arr.join(''))  // 1234
4 console.log(arr.join(','))  // 1,2,3,4
5 console.log(arr.join('*'))  // 1*2*3*4

2. concat()

              concat()用于两个或多个数组的合并,将合并的数组添加到原数组的后面组成新的数组,不改变原数组

1 const arr = [1,2,3,4]
2 const arr1 = [5,6,7]
3 const arr2 = [8,9,10]
4 console.log(arr.concat(arr1))  // [1,2,3,4,5,6,7]
5 console.log(arr.concat(arr1,arr2))  // [1,2,3,4,5,6,7,8,9,10]

3. toString()

               toString()将数组转换为字符串类型,不改变原数组

1 const arr = ['one','two','three','four']
2 consloe.log(arr.toString())  // one,two,three,four

4. pop()

               pop() 方法用于删除数组的最后一个元素。返回数组的最后一个元素,会改变原数组

1 const arr = [1,2,3,4]
2 console.log(arr.pop())  // 4
3 console.log(arr)  // [1,2,3]

5.push()

               push()方法用于给数组末尾添加一个或多个元素,返回新数组的长度,会改变原数组

1 const arr = [1,2,3,4]
2 const arr1 = [5,6,7]
3 console.log(arr.push(5))  // 5  这个地方打印出来的是数组的长度
4 console.log(arr)   // [1,2,3,4,5]
5 console.log(arr.push(...arr1))  // 7  这个地方打印出来的是数组的长度
6 console.log(arr)  // [1,2,3,4,5,6,7]

6. shift()

                shift()方法用于删除数组的第一个元素,返回第一个元素的值,会改变原数组

1 const arr = [1,2,3,4]
2 console.log(arr.shift())  // 1
3 console.log(arr)  // [2,3,4]

7. unshift()

                unshift()方法用于给数组最前面添加一个或多个元素,返回新数组的长度,会改变原数组

1 const arr = [3,4,5]
2 console.log(arr. unshift(1,2))  // 5  返回的是数组的长度
3 console.log(arr)  // [1,2,3,4,5]

8.slice()

                 slice()方法用于选取数组的一部分返回新数组,不改变原数组,slice(start,end) ,start:规定从何处开始选取,可以是负数,如果是负数它规定从数组尾部开始算起始位置,-1指最后一个元素,-2倒数第二个元素,以此类推,end:规定从何处结束选取,如果没有知道该参数,那么截取的参数从开始位置一直到结束的数组所有元素

1 const arr = [1,2,3,4,5,6,7]
2 console.log(arr.slice(2))  // [3,4,5,6,7]
3 console.log(arr.slice(3,5))  // [4,5]
4 console.log(arr.slice(-2))  // [6,7]
5 console.log(arr.slice(-2,-1))  // [6]

9. splice()

                  splice()方法添加或删除数组元素,该方法会改变原数组。splice(index,删除的个数,向数组添加新元素),第一个参数:整数,添加或删除的位置,负数则从数组的末尾开始,-1指数组最后一个元素,一次类推,第二个参数:想要删除元素的数量,如果是0则表示不会删除,第三个参数:要添加的元素

 1 const arr = [1,2,3,4,5,6,7]
 2 console.log(arr. splice(3))  // [4,5,6,7]
 3 console.log(arr)   // [1,2,3]
 4 
 5 console.log(arr. splice(2,3))  // [3,4,5]
 6 console.log(arr)   // [1,2,6,7]
 7 
 8 const arr1 = [8,9,10]
 9 console.log(arr. splice(1,2,...arr1))   // [2,3]
10 console.log(arr)  // [1,8,9,10,4,5,6,7]

 10. sort()

                  sort()方法对数组元素进行排序,默认排序顺序为按字母升序。排序顺序可以是字母或数字,并按升序或降序,该方法会改变原数组

1 const arr = ['one', 'two', 'three', 'four']
2 console.log(arr. sort())  // [four, one, three, two]
3 
4 const arr1 = [5,4,3,2,10]
5 console.log(arr1.sort())  // [10,2,3,4,5]

11. reverse()

                   reverse()方法用于翻转数组元素,返回翻转后的数组值,该方法会改变原数组

1 const arr = [5,4,3,2,1]
2 console.log(arr.reverse())  // [1,2,3,4,5]
3 
4 const arr1 = ['one','two','three','four']
5 console.log(arr1.reverse())  // ['four','three','two','one']

12. indexOf()

                   indexOf()方法检索字符串或数组,不改变原数组,从前往后查找如果找到则返回第一次找到的结果的索引,如果没找到则返回-1。

1 const arr = [2,5,6,7,88,9]
2 console.log(arr.indexOf(2))   // 0  这里返回的是数组的索引位置
3 console.log(arr.indexOf(99))  // -1 没找到返回-1

13. lastIndexOf()

                    lastIndexOf()方法检索字符串或数组,不改变原数组,从后往前查找,如果找到则返回结果的索引,没找到返回-1。lastIndexOf(item,start),item:想要查找的元素,start:开始检索的索引位置(从0到数组的length-1)。

1 const arr = [0,1,2,3,4,5]
2 console.log(arr.lastIndexOf(4))  // 4 返回的是索引
3 console.log(arr.lastIndexOf(7))  // -1 没找到
4 console.log(arr.lastIndexOf(2,3))  // 2  

 14. every()

                     every()方法对数组中每一项运行给定函数,如果该函数对每一项都返回true,则返回true(如果数组中有一个元素不满足,则整个表达式返回false,剩余的元素不会再进行检测)。该方法不会对空数组进行检测,every((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

1  const arr = [1,2,3,4,5]
2  const list = arr. every(item =>{
3       return item >= 1
4  })
5  console.log(list)   //  true 

15. some()

                     some()方法对数组每一项运行给定函数,如果该函数对任意一项返回true,则返回true(如果找到第一个满足条件的元素,则终止循环,不再继续查找)。该方法不会对空数组进行检测,some((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

1   const arr = [1,2,3,4,5,6,7]
2   const list = arr. some(item =>{
3        return item === 7
4   })
5   console.log(list)   //  true  

16. filter()

                      filter()方法用于筛选数组返回一个新数组,配合return使用,新数组里返回的是符合条件的所有元素,该方法不会对空数组进行检测,不会改变原数组。filter((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

1  const arr = ['spray', 'limit', 'spray', 'exuberant', 'destruction', 'present']
2  const result = arr. filter((item, index)=>{
3       return  arr. indexOf(item) === index
4  })
5 //  结果:['spray', 'limit',  'exuberant', 'destruction', 'present'] 

17. map()

                      map()方法返回一个新的数组,数组中的元素是原数组处理之后的值,不会对空数组进行检索,不改变原数组。必须要有返回值,如果不给return它会返回一个undefined,相当于给遮这个新数组添加新的值但不影响原数组,只是将原来的数组拷贝一份,map((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

                      

 1 const arr = [1,2,3,4,5]
 2 const result = arr.map(function (item) {  
 3         return item * 2
 4 })
 5 console.log(result)   // [2,4,6,8,10]
 6 
 7 // 箭头函数
 8 const result1 = arr.map(item => item * 2)
 9 console.log(result1)   //  [2,4,6,8,10]
10 
11 // 获取特定属性值
12 const arr1 = [
13     { name:"张三", age:18 },
14     { name:"李四", age:23 },
15     { name:"王二", age:20 }
16 ]
17 const result2 = arr1.map(item => {
18         return  item.name
19 })
20 console.log(result2)   // ['张三', '李四', '王二']
21 
22 // 获取数组中对象中特定属性的值
23 const ageList = []
24 const result3 = arr1.map(item => {
25       ageList.push(item.age)
26 })
27 console.log(result3)  // [18,23,20]
28 
29 // 日常接口数据映射
30 res.data.map(item => {
31       return {
32           title:  item.title,
33           age:  item.age,
34           sex:  item.sex === 0 ? '女' : '男'
35       }
36 })
37 
38 // 写箭头函数需要注意的
39 const arr2 = [1,2,3,4,5]
40 const result4 = arr2.map(item => {
41        if(item===2){
42            return  item * 2
43        }
44 })
45 
46 console.log(result4)  //  [undefined, 4, undefined, undefined, undefined]    原因:上面写的是数组里的某个元素值等于2时才return,那么其他的值每遍历一次因为没有return 所以得到的值是undefined
47 // 正确写法
48 const result4 = arr2.map(item => {
49        if(item===2){
50            return  item * 2
51        }
52        return item
53 })

 18. forEach()

                        forEach()方法会改变原数组,用于调用数组的每个元素,该方法无法中断执行,会将所以元素遍历完,forEach使用return无效,forEach((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

1 const arr = [1,2,3,4,5]
2 const copyList = []
3 const result = arr. forEach(item =>{
4        copyList.push(item)
5 })
6 console.log(result)  // [1,2,3,4,5]

19. find()

                       find()方法检索数组返回第一个符合条件的数组成员,如果没找到返回undefined,不改变原数组。find((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

 1 const arr = [1,2,3,4,5]
 2 const result = arr. find(item =>{
 3      if(item===2){
 4          return item
 5      }
 6 })
 7 console.log(result)   // 2
 8 
 9 const result1 = arr. find(item =>{
10      if(item===8){
11          return item
12      }
13 })
14 console.log(result1)   // undefined

20. findIndex()

                       findIndex()方法检索数组返回第一个符合条件的数组成员,如果没找到返回-1,不改变原数组。findIndex((item,index,list)=>{}),item:当前元素的值,index:当前元素的索引,list:当前元素属于的数组对象。

 1   const arr = [1,2,3,4,5]
 2   const result = arr. findIndex(item =>{
 3        if(item===2){
 4            return item
 5        }
 6   })
 7   console.log(result)   // 2
 8   
 9   const result1 = arr. findIndex(item =>{
10       if(item===8){
11           return item
12       }
13  })
14  console.log(result1)   // -1

21. includes()

                         includes()方法用来检测数组是否有某个值,如果有则返回true,否则返回false。includes(item,index),item:需要查找的元素值,index:从哪个索引位置开始查找。

1 [1,2,3,4,5].includes(2)   // true
2 [1,2,3,4,5].includes(2,2)   //  false

22. fill()

                        fill()方法用于将固定值替换数组某一项或者全部,改方法会改变原数组array.fill(value, start, end),value:需要填充的值,start:开始填充的位置,end:结束填充的位置

1 const arr = [1,2,3,4,5]
2 console.log(arr. fill(8))   // [8,8,8,8,8]
3 console.log(arr. fill(8,2,3))   // [1,2,8,4,5]

23. copyWithin()

                         copyWithin()方法用于从数组的指定位置拷贝元素到另一个指定的位置,该方法会改变原数组, array.copyWithin(target, start, end),target:复制到指定目标的索引位置,start:元素复制的起始位置,end:元素复制的结束位置

1 const arr = [1,2,3,4,5]
2 console.log(arr.copyWithin(2))  // [1,2,1,2,3]  从下标为2的元素开始,复制数组,所以3,4,5被替换为1,2,3
3 console.log(arr.copyWithin(2, 1))  // [1,2,2,3,4]  从下标为2的元素开始,复制数组,指定复制的第一个元素的下标为1,所以3,4,5被替换为2,3,4
4 console.log(arr.copyWithin(2, 1,2))   // [1,2,2,3,4]  从下标为2的元素开始,复制数组,指定复制的第一个元素的下标为1,结尾位置下标为3 所以3,4,5被2,3,4替换

 

posted @ 2021-09-27 17:56  Naynehcs  阅读(68)  评论(0编辑  收藏  举报