JS数组下的方法

  • toString():把数组转换为数组值的字符串(修改原数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.toString();  //Banana,Orange,Apple,Mango
  • join():把数组元素结合成一个字符串(返回新数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
const newFruit = fruit.join("*");  //Banana*Orange*Apple*Mango
  • pop():删除数组的最后一个元素(修改原数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.pop();  //['Banana', 'Orange', 'Apple']
var x = fruit.pop();  //返回被弹出的值
  • push():在数组结尾处添加一个新元素(修改原数组)
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.push("grape");  //['Banana', 'Orange', 'Apple', 'Mango', 'grape']
const x =  fruits.push("Kiwi");  //x 的值是 5 -> push()方法返回新数组的长度
  • shift():删除首个数组元素,并把所有其他元素“位移”到更低的索引(修改原数组);返回被“位移出”的字符串
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.shift();  //"Orange", "Apple", "Mango"
const x = fruit.shift();  //返回 "Banana"
  • unshift():(在开头)向数组添加新元素,并“反向位移”旧元素;返回新数组的长度
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.unshift("Lemon");  //'Lemon', 'Banana', 'Orange', 'Apple', 'Mango'
const x = fruit.unshift("Lemon");  //返回5
  • delete:删除元素(修改原数组),会留下未定义的元素空位
const fruit = ["Banana", "Orange", "Apple", "Mango"];
delete fruit[1];  //'Banana', 空白, 'Apple', 'Mango'
  • splice(参数1,参数2,参数3):对数组进行删除添加(修改原数组),不留空位删除元素
  • 参数1:新添加元素的位置
  • 参数2:要删除几个元素
  • 参数3:要添加的内容
const fruit = ["Banana", "Orange", "Apple", "Mango"];
fruit.splice(2, 0, "grape", "pear");  //"Banana", "Orange", "grape" ,"pear"
  • concat():合并(连接)现有数组来创建一个新数组(返回新数组),可以使用任意数量的数组参数
const arr1 = ["Cecilie", "Lone"];
const arr2 = ["Emil", "Tobias", "Linus"];
const arr3 = ["Robin", "Morgan"];
const together = arr1.concat(arr2);   //连接arr1和arr2,输出['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus']
const together = arr1.concat(arr2,arr3);  //['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin', 'Morgan']
const arr1 = ["Cecilie", "Lone"];
const myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); //["Cecilie", "Lone","Emil", "Tobias", "Linus"]
  • slice():用数组的某个片段切出新数组(返回新数组)
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1);  //从数组下标为1的位置切分出新数组:['Orange', 'Lemon', 'Apple', 'Mango']

//可接受两个参数:从开始参数选取元素,直到结束参数(不包括)为止
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1, 3);  //['Orange', 'Lemon']
//如果结束参数被省略,则 slice() 会切出数组的剩余部分。
  • sort():以字母顺序对数组进行排序(修改原数组)
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();  //['Apple', 'Banana', 'Mango', 'Orange']
//数字排序:(从小到大)
		const points = [40, 100, 1, 5, 25, 10];
		points.sort(function (a, b) { return a - b });  //[1, 5, 10, 25, 40, 100]
//对象排序:
		const cars = [
			  { type: "Volvo", year: 2016 },
			  { type: "Saab", year: 2001 },
			  { type: "BMW", year: 2010 }
			]
		cars.sort(function (a, b) { return a.year - b.year });
  • reverse():反转数组中的元素,可以使用它以降序对数组进行排序(先排序,再用此方法反转过来)
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();  //['Orange', 'Mango', 'Banana', 'Apple']
  • Min():找数组中最小的值
  • Max():找数组中最大的值
  • forEach(参数1,参数2,参数3):为每个数组元素调用一次函数(回调函数)
const numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);  //45,4,9,16,25
function myFunction(item:number){ console.log(item); }
  • Map():通过对每个数组元素执行函数来创建新数组;不会对没有值的数组元素执行函数;不会更改原始数组
const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction); //[90, 8, 18, 32, 50]
function myFunction(value:number, index:number, array:number[]) { return value * 2; }

forEach()和Map()的区别:

map()有返回值,forEach()没有返回值;

map会返回一个新数组,forEach不会返回新数组,允许对原数组进行更改

  • filter():创建一个包含通过测试的数组元素的新数组

const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);  // [45, 25]
function myFunction(value:number, index:number, array:number[]) { return value > 18; }

filter和find区别:

filter为过滤找出符合条件的内容返回多个值,find为满足条件则找到第一个符合的内容并返回一个值

  • reduce():在每个数组元素上运行函数,以生成(减少它)单个值;在数组中从左到右工作;不会减少原始数组
const numbers1 = [45, 4, 9, 16, 25];
const sum = numbers1.reduce(myFunction);  // 99
function myFunction(total:number, value:number, index:number, array:number[]) { 
    return total + value; 
}
  • every():检查所有数组值是否通过测试
const numbers = [45, 4, 9, 16, 25];
const allOver18 = numbers.every(myFunction);  //false(数组中的数字并不满足都大于18)
function myFunction(value, index, array) { return value > 18; }
  • some():检查某些数组值是否通过了测试(与every相反,不需要所有都满足)
  • indexOf():在数组中搜索元素值并返回其位置;lastIndexOf()是从后往前搜索
const fruits = ["Apple", "Orange", "Apple", "Mango"];
const a = fruits.indexOf("Apple");  //返回0
  • find():返回通过测试函数的第一个数组元素的值
const numbers = [4, 9, 16, 25, 29];
const first = numbers.find(myFunction);  //25
function myFunction(value, index, array) { return value > 18; }
  • findIndex():返回通过测试函数的第一个数组元素的索引
const numbers = [4, 9, 16, 25, 29];
const first = numbers.findIndex(item => { return item > 1 }); //0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小华仔仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值