JS中数组的方法

1. join()

 1 Array.join() 是 String.split() 的逆向操作
 2 
 3 var arr = [1, 2, 3]
 4 arr.join()// "1,2,3"
 5 arr.join("")// "123"
 6 arr.join("  ")// "1  2  3"
 7 arr.join('-')// "1-2-3"
 8 arr.join('_')// "1_2_3"
 9 arr.join('a')// "1a2a3"
10 
11 var arr1 = [1, 2, 3, {a:1,b:2,c:3}]
12 arr1.join('__') // "1__2__3__[object Object]"
13 var arr2 = [1, 2, 3, [1,2,3]]
14 arr2.join('__')// "1__2__3__1,2,3"

 


2. reverse()

数组元素全部倒过来


3.sort()
 1 排序
 2 
 3 var arr = [1,3,11,24];arr.sort() // [1, 11, 24, 3]
 4 arr.sort((a, b) => a-b) // [1, 3, 11, 24]
 5 
 6 var arr1 = ['b', 'as', 'c', 'z', 'f'];
 7 arr1.sort() // ["as", "b", "c", "f", "z"]
 8 
 9 var arr2 = ['b', 'as', 'c', [1,2,3] ,'z', 'f']
10 arr2.sort() // [[1,2,3], "as", "b", "c", "f", "z"]

 


4. concat()

返回一个新的数组(不修改原数组)

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

 


5. slice(start, end)

返回数组片段 (不修改原数组) start, end 均是开区间

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

 


6. splice()

插入或者删除 (修改数组本身)

 1 var arr = [1, 5, 6, 7, 3];
 2 arr.splice(1) // [5, 6, 7, 3]
 3 
 4 var arr1 = [1, 5, 6, 7, 3];
 5 arr1.splice(2) // [6, 7, 3]
 6 
 7 var arr2 = [1, 5, 6, 7, 3];
 8 arr2.splice(1,2) // [5, 6]
 9 
10 var arr3 = [1, 5, 6, 7, 3];
11 arr3.splice(2,0, 'a')
12 
13 arr3 //[1, 5, "a", 6, 7, 3]

 


7. 把数组当栈使用
push() 尾部添加
unshift() 头部添加
pop() 尾部删除
shift() 头部删除

8 遍历
for...in... (这货他么可以用来遍历 对象{a: 1, b: 2} 中的键值对)...

var obj = {a: 1, b:2}
for(var x in obj) {  
  console.log(x)
  console.log(obj[x])
}

// a
// 1
// b
// 2

  

map()
forEach()

判断是数组还是对象

1 var o = {};
2 try {
3   o.map(i => i) && 'o is arr'} 
4 catch(err) {  
5   'o is: obj';
6 }

 


9. filter()
var arr = [1, 5, 6, 7, 3];

arr.filter((item) => item <= 5 ); // [1, 5, 3]

  


10.
every() // 针对所有元素
some() // 存在某个元素

11.  reduce() // 从左到右索引
    reduceRight() // 从右到左
var arr = [1,2,2,3,4,54];

// 求和
arr.reduce((x, y) => x + y) // 66 

// 找出最大值
arr.reduce((x, y) => x > y ? x : y) // 54

  


12. 搜索整个数组中具有给定值的元素
indexOf() // 从左到右索引
lastIndexOf()
用来给数组去重

function uniq(arr) {
  var _arr = [];
  arr.map(item => _arr.indexOf(item) === -1 && _arr.push(item))    
  return _arr;
}
var array = [1,2,2,3,1,1,5,2,10, '10'];
uniq(array);

  

 原文地址:https://mp.weixin.qq.com/s/qedx5LWXfNeT5aachyBjkA 

posted @ 2016-12-16 13:41  ZachChan  阅读(267)  评论(0编辑  收藏  举报