javascript数组操作

1. join()
Array.join() 是 String.split() 的逆向操作
var arr =[1,2,3]
arr.join()//"1,2,3"
arr.join('')//"123"
arr.join(" ")//"1 2 3"
arr.join("-")//”1-2-3"
arr.join("_")//"1_2_3"
arr.join("a")//"1a2a3"

var arr1 = [1,2,3,{a:1,b:2,c:3}]
arr1.join("_")//"1_2_3[object object]"
// var arr2 = [1,2,3[1,2,3]]
// arr2.join("_")//"1_2_3_1,2,3"
//
// 2. reverse()
//
// 数组元素全部倒过来
//
// 3.sort()
//
// 排序
// var arr = [1,3,4,12]
// arr.sort()//1,12,3,4(排序规则 只是比较第一位数字的大小)
// arr.sort(a,b)//1,2,3,12(传递参数就按照顺序排列)
//
// var arr2 = ['b', 'as', 'c', [1,2,3] ,'z', 'f']
// arr2.sort() // [[1,2,3], "as", "b", "c", "f", "z"]
//
// 4. concat()
//
// 返回一个新的数组(不修改原数组)
//
// var arr = [1, 2, 3];
// arr.concat(4, 5) // [1,2,3,4,5]
// arr.concat([4, 5]) // [1,2,3,4,5]
// arr.concat([1,2,3], [4, 5]) // [1, 2, 3, 1, 2, 3, 4, 5]
// arr.concat([1,[2],3], [4, 5]) //[1, 2, 3, 1, [2], 3, 4, 5]
//
// 5. slice(start, end)
//
// 返回数组片段 (不修改原数组) start, end 均是开区间
// var arr = [1,5,6,7,3]
// arr.slice(0) //[1,5,6,7,3]
// arr.slice(1,2)//[5]
// arr.slice(1,3)//[5,6]
//
// 6. splice()
//
// 插入或者删除 (修改数组本身)
// var arr = [1,5,6,7,3]
// arr.splice(1)//[5,6,7,3]
//
// var arr1 = [1,5,6,7,3]
// arr1.splice(2)//[6,7,3]
//
// var arr2 = [1,5,6,7,3]
// arr.splice(1,2)//[6,7,3]
//
// var arr3 = [1, 5, 6, 7, 3];
// arr3.splice(2,0, 'a')
//
// arr3 //[1, 5, "a", 6, 7, 3]
//
// 7. 把数组当栈使用
//
// push() 尾部添加
//
// unshift() 头部添加
//
// pop() 尾部删除
//
// shift() 头部删除

// 8. filter()

var arr = [1, 5, 6, 7, 3];

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

9.

every() // 针对所有元素

some() // 存在某个元素

10
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

posted @ 2017-01-19 10:00  言不可道尽  阅读(112)  评论(0编辑  收藏  举报