JS数组基本操作

创建

var a = [1,2,3]
var a = Array()

push():在末尾增加一个元素
unshift():在首部增加一个元素

ES6: fill() 填充数组
参数:
第一个元素(必须): 要填充数组的值
第二个元素(可选): 填充的开始位置,默认值为0
第三个元素(可选):填充的结束位置,默认是为this.length

pop(): 删除末尾的元素
shift():删除第一个元素
delete:删除指定元素,但是数组长度

一个方法实现增删

splice()

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

indexOf(): 查找数组是否存在某个元素,返回下标
lastIndexOf() :查找指定元素在数组中的最后一个位置
includes() :查找数组是否包含某个元素 返回布尔
find() :用于找出第一个符合条件的数组成员

遍历

1.forEach():
array.forEach(function(currentValue, index, arr), thisValue)

  1. currentValue(必须),数组当前元素的值
  2. index(可选), 当前元素的索引值
  3. arr(可选),数组对象本身
  • 无法中途退出循环,只能用return退出本次回调,进行下一次回调。
  • 它总是返回 undefined值,即使你return了一个值。
  1. ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组。
    keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。
for (let index of ['a', 'b'].keys()) {
  console.log(index);
}
// 0
// 1

for (let elem of ['a', 'b'].values()) {
  console.log(elem);
}
// 'a'
// 'b'
for (let [index, elem] of ['a', 'b'].entries()) {
  console.log(index, elem);
}
// 0 "a"
// 1 "b"

排序

sort()
sort要正确排序必须配合一个排序函数

function arrySort(a,b) {
return a-b
}

颠倒顺序

reserse()
返回值为undefind

合并

1.[…arr1, …arr2, …arr3]
2.concat()

数组转字符串

1.join():用指定分隔符分割连接

let a= ['hello','world'];
let str=a.join(); // 'hello,world'
let str2=a.join('+'); // 'hello+world'

2.toString() 和join相同但是不能指定分隔符

字符串转数组

split()方法与join()方法正好相反
它有两个参数:

  • separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
  • howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
    如果用 “” 中间没有分号,作为分隔符,每个字符都会被分割开

数组拷贝

1.const a2 = […a1];

2.深拷贝

  • 利用concat
let arr = [1,2,3];
let arr2 = [].concat(arr);
  • 利用JSON深拷贝
let obj = {
a:1,
b:2,
c:undefind,
fun:function () {
console.log("function")
}
};
let obj2 = JSON.parse(JOSN.Stringify(obj));
console.log(obj2);
//object:[a:1,b:2]
//用JSON拷贝会忽略undefined和function

数组降维

flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
flat(1) 表示拉平一层,Infinity关键字可以将所有层拉平

filter()方法

filter方法可以实现数组的筛选

filter有三个参数:
element:数组中的元素
index:参数位置
array:数组本身

用法:

var a = [1,2,2, ,3,4,4,5];
// 只写一个参数则时element
var b = a.filter(function (num) {
	return num && num.trim();	//trim()会去除字符串两端的空格
})
//最后会得到去除空格的字符串

var c = a.filter(function (num,index,array){
	return array.indexOf(num) === index;
})
//	这样就可以巧妙的去除重复元素,原理是indexOf会返回元素第一次出现的位置,和index进行比较就可以得出是不是重复的

ES6的set数组去重方法

结果是返回一个新数组

 let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
 let set = new Set(array);
 console.log(set);
 // => Set {1, 2, 3, 4, 5}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值