JS总结(二):数组方法

isArray()

  • 判断是不是数组类型
  • Array.isArray()

concat()

  • var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
  • 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组(浅拷贝)
let a = [1,2].concat([3,4]);
console.log(a)   // [1,2,3,4];

let b=[1,2].concat([[3,4],5],6);
console.log(b)  //[1,2,[3,4],5,6]

push()、pop()、shift()、unshift()

栈方法:

  • push:接受任意数量的参数,逐个添加到数组末尾,并返回修改后数组的长度
  • pop:从末尾移除最后一项,减少数组length值,并返回移除的项

队列方法:

  • shift:移除数组第一项,length减一,并返回该项
  • unshift:在数组前面添加任意个项,并返回新的数组长度
let a = [1,2]
let b = a.push(3,4)     // 4  console.log(a)-->[1,2,3,4]
let c = a.pop();    //4
let d = a.shift();   //1
let e = a.unshift(6,7,8);//5   console.log(a)--->[6,7,8,2,3]

slice()

  • arr.slice([begin[, end]])
  • 返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝
let a = [1,2,3,4,5];
let b = a.slice(1,3);  //[2,3]
  • 可以用来将一个类数组(Array-like)对象/集合转换成一个新数组,你只需将该方法绑定到这个对象上

splice()

  • 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组
  • array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
    • start:从哪一项开始,如果大于数组长度将从末尾一项开始;如果是负值,则表示从数组末位开始的第几位
    • deleteCount: 删除几项,如果值太大,start(包括start)后面的将全部删除;deleteCount 是 0 或者负数,则不移除元素
    • item x:要添加进数组的元素,从start 位置开始
let a = [1,2,3];
a.splice(0,0,4);  //[4,1,2,3]
a.splice(0,1);//[1,2,3]

every()、some()、filter()、forEach()、map()

every()

  • 测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
  • arr.every(callback[, thisArg]) thisArg为函数中this的指向, callback用来测试每个元素的函数,它可以接收三个参数:
    • element : 用于测试的当前值。
    • index可选 : 用于测试的当前值的索引。
    • array可选 : 调用 every 的当前数组。
let a = [4,5,6];
let b = a.every((element)=>element>=4) //true
let c = a.every(element)=>element>=5) //false

some()

  • 是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。
  • 参数同上
[2, 5, 8, 1, 4].some(x => x > 10);  // false
[12, 5, 8, 1, 4].some(x => x > 10); // true

filter()

  • 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
  • 参数同上
let a = [3,4,5,6];
let b = a.filter((element)=>element>=5); //[5,6]

forEach()

  • 对数组的每个元素执行一次给定的函数。
  • 参数同上
let a = [1,2,3]
let b = a.forEach((element)=>element+=1); //b:undefined  a:[1,2,3]

map()

  • 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值。
  • 参数同上
["1", "2", "3"].map(parseInt); //[1,NaN,NaN] 

原因

reduce()

详情

join()

  • 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果一个元素为 undefined 或 null,它会被转换为空字符串。
var a = ['Wind', 'Rain', 'Fire'];
var myVar1 = a.join();      // myVar1的值变为"Wind,Rain,Fire"
var myVar2 = a.join(', ');  // myVar2的值变为"Wind, Rain, Fire"
var myVar3 = a.join(' + '); // myVar3的值变为"Wind + Rain + Fire"
var myVar4 = a.join('');    // myVar4的值变为"WindRainFire"

indexof()

  • 在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
  • arr.indexOf(searchElement[, fromIndex])
var array = [2, 5, 9];
array.indexOf(2);     // 0
array.indexOf(7);     // -1
array.indexOf(9, 2);  // 2
array.indexOf(2, -1); // -1
array.indexOf(2, -3); // 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值