首页 > 其他分享 >数组方法ES5 + ES6

数组方法ES5 + ES6

时间:2023-05-28 17:45:10浏览次数:41  
标签:ES6 ES5 const name arr item 数组 console

 


 

sort / reverse

主要用于排序,会影响原来数组。
const arr = [1, 2, 3]
arr.sort(); // 正序
arr.reverse(); // 反序
arr.sort(() => 0.5 - Math.random()); // 乱序

 

 


 

splice

编辑元素,会影响原来数组

// splice(目标下标, 删除多少元素, 插入元素);
const arr = [1, 2, 3]
console.log(arr, arr.splice(0, 0, '我')) // ['我', 1, 2, 3] // 增加元素
console.log(arr, arr.splice(0, 1, '我')) // ['我', 2, 3] // 替换元素,返回被替换元素
console.log(arr, arr.splice(0, 1)) // [2, 3] // 删除目标下标元素,返回被删除元素

 

 


slice

根据指定开始结束截取数组,不会影响原来数组

const arr = [1, 2, 3, 4, 5, 6]
console.log(arr.slice(0, 2)); // [1, 2] // 截取段

 

 


map

返回处理后的元素,不会影响原来数组

const arr = [
  { name: 'tom', age: 17 },
  { name: 'anne', age: 16 },
  { name: 'jack', age: 18 },
]
// 返回数组,数组的元素为原始数组元素调用函数处理后的值
console.log(arr.map(item => item.name)); // ['tom', 'anne', 'jack']

 

 

 


filter / find

过滤数组元素,不会影响原来数组

const arr = [1, 2, 3, 2]
// filter: 返回数组,循环所有元素,返回所有符合条件的元素
console.log(arr.filter(item => item === 2)); // [2, 2]
// find: 返回单个元素,只要有一个元素符合条件立即结束循环并返回元素
console.log(arr.find(item => item === 2)); // 2

 

 


 

some / every

是否存在元素,不会影响原来数组
some运行过程:
return true : 立即结束循环,最终结果为true
return false : 继续循环,直到所有元素都遍历一次,如果遍历所有元素都是false,最终结果为false

every运行过程:
return true : 继续循环,直到所有元素都遍历一次,如果遍历所有元素都是ture,最终结果为true
return false : 立即结束循环,最终结果为false
const arr = [1, 2, 3]
// some:只要有一项返回true,则返回true
console.log(arr.some(item => item === 2)); // true
// every:必须所有项返回true,才返回true;一旦有一项返回flase,就返回flase
console.log(arr.every(item => item >= 2)); // flase

 

 


shift / unshift / pop

编辑数组,会影响原来数组

const arr = [1, 2, 3]
// shift: 删除数组第一个元素并返回删除元素
console.log(arr, arr.shift()); // [2, 3], 1

 

// unshift: 向数组的开头添加一个元素,并返回数组长度
const arr = [1, 2, 3]
console.log(arr, arr.unshift(0)); // [0, 1, 2, 3], 4

 

 

const arr = [1, 2, 3]
// 删除数组最后一个元素并返回删除的元素
console.log(arr, arr.pop()); // [1, 2], 3

 

 


join:

指定分隔符连接数组元素,不填任何符号就默认用逗号,会影响原来数组

const arr = [1, 2, 3]
console.log(arr.join("-")); // 1-2-3

 

 


for of / for in

遍历数组,不会影响原来数组

// for of 拿到是数组对象value,主要用作遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象
const arr = [
  { name: 'tom', age: 17 },
  { name: 'anne', age: 16 },
  { name: 'jack', age: 18 },
]
for (const item of arr) {
  console.log(item);
}
// 通过entries获得下标与元素
for (const [i, item] of arr.entries()) {
  console.log(i, item);
}

 

 

// for in 拿到是数组对象key,主要用作遍历对象
// 跳出这次循环:return
// forEach没有跳出整个循环的方法,但可以用异常的方式来跳出,可这种方法太不友好
const obj = { name: 'tom', age: 17 }
for (const key in obj) {
  const item = obj[key]
  console.log(key, item);
}

 

 


 

forEach

// 常用于遍历数组,循环无法中途跳出,break return 都无效
// 语法: array.forEach(callbackFn(item, index, arr), thisValue)
// 参数: item-当前元素 index-下标 arr-被循环数组 thisValue-执行回调函数 callbackFn 时,用作 this 的值
const arr = [
  { name: 'tom', age: 17 },
  { name: 'anne', age: 16 },
  { name: 'jack', age: 18 },
]
arr.forEach((item, index, arr) => {
  console.log(item, index, arr);
})

 

 


reduce / reduceRight

一篇写的很好的reduce教程:https://www.cnblogs.com/amujoe/p/11376940.html
reduce主要用于循环数组进行累计、累加
reduceRight与reduce用法相同,只是遍历顺序相反

// 做汉堡包为例子
const list = [
  { name: '生菜', icon: '

标签:ES6,ES5,const,name,arr,item,数组,console
From: https://www.cnblogs.com/konghaowei/p/17438550.html

相关文章

  • 有序矩阵中的第 k 个最小数组和
    1.暴力记录前k个classSolution{public:intkthSmallest(vector<vector<int>>&mat,intk){vector<int>pre(k,0);//存储前k个最小的和intcur[mat[0].size()*k];//存储intsize=1;//用于记录pre当前大小for(auto&r......
  • Golang GIN 接收结构体切片(前端对象数组)
    想接收前端这样的数据格式:【json数组】[{"password":"casso","mobile":"13456789999","nick_name":"go","icon":"地址"},{"passwor......
  • php循环创建数组
    PHP中可以使用for循环、while循环和foreach循环来创建数组。下面是一个使用for循环创建数组的示例代码:<?php$myArray=array();for($i=0;$i<5;$i++){$myArray[$i]=$i*2;}print_r($myArray);?>该代码将创建一个空数组,然后使用for循环遍历数组并为每个元素......
  • 数组的拷贝
    packagecom.Demo;//数组的拷贝publicclassTest5{publicstaticvoidmain(String[]args){int[]arr={11,22,33};int[]arr2=copy(arr);dayin(arr2);}publicstaticvoiddayin(int[]arr){System.out.print("[&qu......
  • leetcode:合并两个有序数组
    题目给你两个按非递减顺序排列的整数数组 nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1......
  • 静态初始化数组
    1packagecom.karl1;23publicclassArrayDemo{4publicstaticvoidmain(String[]args){5//静态初始化数组67//1.数据类型[]数组名=new数据类型[]{元素1,元素2,元素3.。。。。};8int[]ages=newint[]{1,24,36};9......
  • 数组的遍历
    packagecom.karl1;publicclassArrayDemo2{publicstaticvoidmain(String[]args){//数组的遍历int[]ages={12,24,36};//012for(inti=0;i<ages.length;i++){System.out.println(ag......
  • 数组的访问
    packagecom.karl1;publicclassArrayDemo1{publicstaticvoidmain(String[]args){//数组的访问int[]arr={12,24,36};//012//访问数据System.out.println(arr[0]);System.out.println(arr[1]......
  • 多个变量指向同一个数组对象
    packagecom.karl1;publicclassArrayDemo4{publicstaticvoidmain(String[]args){//多个变量指向同一个数组对象的形式int[]arr1={11,22,33};//把int类型的数组变量arr1赋值给int类型的数组变量arr2int[]arr2=arr1;......
  • 对数组的元素求和
    packagecom.karl1;publicclassArrayTest{publicstaticvoidmain(String[]args){//对数组的元素求和//定义一个数组int[]money={16,26,36,6,100};//定义一个变量用于累加求和intsum=0;//遍历这个数组中的每一个数据for(inti=0;i<money.length;i++)......