javaScript 数组方法

join 将数组的逆向成字符串操作`(修改原数组)`

把数组中的所有元素转换为一个字符串

var arr = [4, 12, 16, 20];
console.log(arr.join()) //4,12,16,20
var arr = [4, 12, 16, 20];
console.log(arr.join()) //4-12-16-20
var arr = [4, 12, 16, 20];
console.log(arr.join()) //4*12*16*20

// 可以用 split 在进行反转
'4,12,16,20'.split(',') // ['4', '12', '16', '20']
'4*12*16*20'.split('-') // ['4', '12', '16', '20']
'4*12*16*20'.split('*') // ['4', '12', '16', '20']

reverse 数组元素全部倒过来 `(修改原数组)`

var arr = [4, 12, 16, 20];
console.log(arr.reverse()) // [20, 16, 12, 4]

sort 排序 `(修改原数组)`

var arr = [4, 12, 16, 20];
console.log(arr.sort()) // [12, 16, 20, 4]
// 注意:当数字是按字母顺序排列时"40"将排在"5"前面。 使用数字排序,你必须通过一个函数作为参数来调用。函数指定数字是按照升序还是降序排列。

console.log(arr.sort((a,b)=>{
    return b-a
})) // [20, 16, 12, 4]

splice 可用来增删改 `(修改原数组)`

从数组中添加或删除元素。

// 语法 array.splice(index,howmany,item1,.....,itemX)
// index *必填*从何处添加/删除元素。 该参数是开始(添加|删除)的数组元素的下标(数字)。
// numany *可选*规定应该删除多少元素。(数字 | ‘0’)。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
// item1, ..., itemX *可选*要添加到数组的新元素

var a = [1,2,3];
//a.splice(操作位置,删除个数,插入元素 用逗号隔开)
a.splice(2,0,'a') //添加 a=[1,2,3,'a']
var b = [1,2,3];
b.splice(2,1) //删除 b=[1,2]
var c = [1,2,3];
c.splice(2,1,'a') //修改 c=[1,2,'a']

push 在数组后 拼接增加 `(修改原数组)`

var arr = [4, 12, 16, 20];
arr.push(11)
console.log(arr) // [4, 12, 16, 20, 11]

pop 在数组后删除 `(修改原数组)`

var arr = [4, 12, 16, 20];
arr.pop()
console.log(arr) // [4, 12, 16 ]

unshift 在数组头部添加 `(修改原数组)`

var arr = [4, 12, 16, 20];
arr.unshift(11)
console.log(arr) // [11, 4, 12, 16, 20]

shift 在数组头部删除 `(修改原数组)`

var arr = [4, 12, 16, 20];
arr.unshift()
console.log(arr) // [ 12, 16, 20 ]

concat 返回新数,合并数组 可用作浅拷贝 (不修改原数组)

语法:arr.concat(arr1, arr2,..., arrn)
var a = [4, 12, 16, 20];
var b = ["b1", "b2", "b3"];
var c = a.concat(b);
console.log(c); // [4, 12, 16, 20, 'b1', 'b2', 'b3']

copyWithin 从数组的指定位置拷贝元素到数组的另一个指定位置中

语法 arr.copyWithin(target, start, end)
target *必填* 复制到指定目标索引位置。
start *可填* 元素复制的起始位置。
end	*可填* 停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。
var arr = [4, 12, 16, 20];
console.log(arr.copyWithin(2,0)) //  [4, 12, 4, 12]

slice 返回新数,里面的值是截取下来的值 (不修改原数组)

// 语法 : array.slice(start, end)
var arr = [4, 12, 16, 20];
var new_arr = arr.slice(1,2)
console.log(new_arr) // [12]

var arr = [4, 12, 16, 20];
var new_arr = arr.slice(1,3)
console.log(new_arr) // [12, 16]

var arr = [4, 12, 16, 20];
var new_arr = arr.slice(-2,3)
console.log(new_arr) // [16]

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

var arr = [4, 12, 16, 20];
for (var index in arr) {
    console.log(index) // 0、1、2、3
    console.log(arr[index]) // 4、12、16、20
}

forEach()

var arr = [4, 12, 16, 20];
arr.forEach((item,index)=>{
    console.log(item) // 4、12、16、20
    console.log(index) // 0、1、2、3
})

filter 过滤

var arr = [4, 12, 16, 20];
var new_arr = arr.filter((item,index)=> item == 16)
console.log(new_arr) // [16]

every() 针对所有元素

var arr = [4, 12, 16, 20];
var flag = arr.every((item,index)=> item % 2 == 0)
console.log(flag ) // true

var arr = [4, 12, 16, 20];
var flag = arr.every((item,index)=> item % 3 == 0)
console.log(flag ) // false

some() 存在某个元素

var arr = [4, 12, 16, 20];
var flag = arr.every((item,index)=> item % 2 == 0)
console.log(flag ) // true

var arr = [4, 12, 16, 20];
var flag = arr.every((item,index)=> item % 3 == 0)
console.log(flag ) // true

var arr = [4, 12, 16, 20];
var flag = arr.every((item,index)=> item % 9 == 0)
console.log(flag ) // false

reduce() 从左到右索引 可用来计算数量等

var arr = [4, 12, 16, 20];
var count = arr.reduce((a,b)=> a + b )
console.log(count) // 52

reduceRight // 从右到左 可用来计算数量等

var arr = [4, 12, 16, 20];
var count = arr.reduceRight((a,b)=> a + b )
console.log(count) // 52

indexOf() 从左到右索引

var arr = [4, 12, 16, 20];
var index1 = arr.indexOf(16)
console.log(index1) // 2 找到返回下标
var index2 = arr.indexOf(21)
console.log(index2) // -1 找不到返回 -1

lastIndexOf() 从右到左索引

var arr = [4, 12, 16, 20];
var index1 = arr.lastIndexOf(16)
console.log(index1) // 2 找到返回下标
var index2 = arr.lastIndexOf(21)
console.log(index2) // -1 找不到返回 -1

find()

var arr = [4, 12, 16, 20];
var new_arr = arr.find((item,index)=> item >= 16)
console.log(new_arr) // 16

var arr = [4, 12, 16, 20];
var new_arr = arr.find((item,index)=> item > 4)
console.log(new_arr) // 12

var arr = [4, 12, 16, 20];
var new_arr = arr.find((item,index)=> item != 16)
console.log(new_arr) // 4
/**
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
find() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
注意: find() 对于空数组,函数是不会执行的。
注意: find() 并没有改变数组的原始值。

    有匹配项 返回对应项
    无匹配项 返回undefined
语法:arr.find(function(value, index, arr),thisValue)
    value*必填*当前元素
    index *选填*当前元素的索引值
    arr *选填*当前元素所属的数组对象
    thisValue 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值
*/
 

findIndex()

/**
语法 array.findIndex(function(value, index, arr), thisValue)
    value*必填*当前元素
    index *选填*当前元素的索引值
    arr *选填*当前元素所属的数组对象
    thisValue 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值

    有匹配项 返回对应下标 
    无匹配项 返回 -1
*/
var arr = [4, 12, 16, 20];
var new_arr = arr.findIndex((item,index)=> item >= 16)
console.log(new_arr) // 2 

var arr = [4, 12, 16, 20];
var new_arr = arr.findIndex((item,index)=> item > 4)
console.log(new_arr) // 1

var arr = [4, 12, 16, 20];
var new_arr = arr.findIndex((item,index)=> item != 16)
console.log(new_arr) // 0

var arr = [4, 12, 16, 20];
var new_arr = arr.findIndex((item,index)=> item > 21)
console.log(new_arr) // -1 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值