JS 常用数组方法总结

JS 数组方法总结

定义:
1var mycars = new Array("Saab", "Volvo", "BMW")
2var mycars = new Array(size)	//创建数组并指定长度,参数可选
   mycars[0] = "Saab"
   mycars[1] = "Volvo"
   mycars[2] = "BMW"
3var arr=[1,2,3];                     //隐式创建

注意:
  let arr = new Array();
  arr.length = 4;
  console.log(arr[1])   // undefined
  arr.forEach((item, index) => {
    console.log(index, item)   // 没有输出,都是“空”
  })
  arr[8] = 4;	//当给索引为8的位置复制后,长度改变,但其他的位置还是 "空"
  arr.forEach((item, index) => {
    console.log(index, item) //会打印出 8,4
  })
文本下标:
arr['key'] = value;

在js中,文本下标的数组元素,不计入数组长度
以文本下标形式添加到数组,实际是以属性形式添加到数组对象中的

arr['second'] = 'lisi';
document.write(arr.second + '<br>');
方法:
更改元素
arr[0] = "5";
arr[arr.length] = "5";
删除元素
delete arr[0]; 
//删除之后,数组该位置的元素不存在(即相当于没有值),但是数组的长度未改变
拼接数组
splice(index,count,item1,.....,itemX)
//返回被删除的元素组成的数组,如没有删除,则返回[]

//index、必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
//count、必需。要删除的项目数量。如果设置为 0,则不会删除项目。
//item1, ..., itemX	可选。向数组添加的新项目。

注意:
  arr.splice(0,0,5,6,8,9,9,9)	
  //表示添加5,6,8,9,9,9个元素进去

  arr.splice(0,4)
  // 当没有 item参数 时,表示数组删除元素
合并(连接)数组
concat()
//不会改变原数组。返回一个新的连接数组。
//concat() 方法可以使用任意数量的数组参数.

var myChildren = arr1.concat(arr2, arr3);

裁剪数组

slice:通过索引裁剪出一个新的数组,不会改变原数组

slice(start,end)
//start	必需。开始选取的数组下标。如果是负数,从数组尾部开始算起。-1 指最后一个元素,
//end 可选。结束选取的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
//返回裁剪出来的新数组

注意:
	两个索引中间必须有元素时,才会返回数组,否则,返回[]
let arr = new Array(1, 4, 5, 6, 8)
    console.log(arr.slice(-2, -1))	//[6]
    console.log(arr.slice(-1, -2))	//[]
    console.log(arr.slice(-1, 0))	//[]
    console.log(arr.slice(0, 1))	//[1]
pop、push、shift、unshift
pop() 	//从数组中删除最后一个元素:返回删除的元素
push() 	//在数组结尾处添加一个新的元素:返回数组的长度
shift() //删除首个数组元素,返回被删除的元素
unshift() //在数组的开头添加元素,返回数组的长度
toString、join
toString()  //转化为 用逗号链接的字符串
join()  //转化为用 规定符号链接的字符串

任何的 js 对象都有 toString() 方法
数组类型判断
Array.isArray(arrObj)	//返回布尔值,
Array.of()
Array.of(element0[, element1[, ...[, elementN]]])
//创建一个具有可变数量参数的新数组实例并返回,而不考虑参数的数量或类型。
//element 参数对象
Array.from()
将类数组转化成数组,浅拷贝的数组实例(将类数组中的对象地址只拷贝过来),

类数组:
1、属性要为索引(数字)属性,不管是带引号还是不带引号
2、必须有length属性


let array = {
    0: 'name', 	//'0':"name"	也可以
    1: 'age',
    2: 'sex',
    3: ['user1','user2','user3'],
    'length': 4
}
let arr = Array.from(array)
console.log(arr) // ['name','age','sex',['user1','user2','user3']]
查找元素:indexof、lastIndexof、find、findIndex、includes
indexOf():返回数组中某个指定的元素位置,若没有,返回 -1
lastIndexof():返回一个指定的元素在数组中最后出现的位置,若没有,返回 -1

arr.find(callback[, thisArg])	
	//满足提供的测试函数的第一个元素的值
findIndex(callback[, thisArg]) 
	//返回数组中符合条件的第一个元素的索引。否则返回-1。
//callback:每一项的执行方法,参数有当前元素(必选)、索引(可选)、数组本身(可选)
//thisArg:执行回调时用作this 的对象。

includes(valueToFind[, fromIndex])
	//用来判断一个数组是否包含一个指定的值,返回boolean
//valueToFind	需要查找的元素值。区分大小写
//fromIndex 	从fromIndex 索引处开始查找 valueToFind。若是负值,则从末尾从前计算,开始查找,如果索引小于0,则查找整个数组,若大于数组成都,则不会被搜索

跳转到 find,filter,some,every,reduce,forEach,map,for…in,for…of等方法介绍

后续会有更新,欢迎评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
some和every方法是JavaScript数组的两个常用方法,用于判断数组中的元素是否满足指定条件。 some方法会遍历数组中的每个元素,只要有一个元素满足条件,就返回true;如果所有元素都不满足条件,则返回false。\[1\]例如,对于数组\[2, 4, 6, 8, 10\],使用some方法判断是否存在元素小于5的情况,结果为true,因为数组中的2小于5。 every方法也会遍历数组中的每个元素,但要求所有元素都满足条件,才返回true;只要有一个元素不满足条件,就返回false。\[2\]例如,对于数组\[2, 4, 6, 8, 10\],使用every方法判断是否所有元素都小于20,结果为true,因为所有元素都小于20。 需要注意的是,当遍历到某个元素不满足条件时,some方法会停止遍历,而every方法也会停止遍历并直接返回false。\[3\] 总结起来,some方法用于判断数组中是否存在满足条件的元素,而every方法用于判断数组中的所有元素是否都满足条件。 #### 引用[.reference_title] - *1* *3* [JS 数组方法 every 和 some 的区别](https://blog.csdn.net/linyichao123/article/details/128229897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [js中some和every用法](https://blog.csdn.net/qq_41328247/article/details/130930506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值