一、数组方法
---在数组头部添加元素
array.unshift()
---删除数组头部元素
array.shift()
---在数组尾部添加元素
array.push()
---删除数组最后一个元素
array.pop()
---元素反转
array.reverse()
---数组转字符串
array.toString()
array.join(',')
---根据下标删除元素
delete array[0]
---splice() 方法可用于在指定下标处添加元素 或者 从指定下标处删除元素
## 用于添加元素
array.splice(2, 0, "Lemon", "Kiwi");
# 第一个参数(2)定义了应添加新元素的位置(拼接)。
# 第二个参数(0)定义应删除多少元素。
# 其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
# splice() 方法返回一个包含已删除项的数组:
## 删除元素
fruits.splice(0, 1);
# 第一个参数(0)定义新元素应该被添加(接入)的位置。
# 第二个参数(1)定义应该删除多个元素。
---数组合并 concat()
array1.concat(array2)
---裁剪数组 slice()
array.slice(1)
# 从数组下标1开始切出一段数组
## 也可以接收两个参数
array.slice(1, 3)
从下标1开始裁减到下标3(不包括)的数组
--- indexOf
array.indeOf('0')
查找当前元素所在数组中的下标,如果存在返回对应下标
如果不存在,返回 -1
二、数组去重
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
方法一、 利用set
function unique(array) {
return Array.from(new Set(arr))
}
const array1 = [...new Set(arr)]
方法二、 双层for循环 + splice
const unique1 = arr => {
let len = arr.length;
for(let i = 0;i<len;i++){
for(let j = i+1;j<len;j++){
if(arr[i] === arr[j]) {
arr.splice(j,1);
len--;
j--;
}
}
}
return arr;
}
方法三、利用indexOf
const unique2 = arr => {
let len = arr.length;
const str = []
for(let i = 0;i<len;i++){
if(str.indexOf(arr[i]) === -1)
return str.push(arr[i])
}
}
方法四、利用include
const unqiue3 = arr => {
let len = arr.length
const str = []
for(let i = 0;i<len;i++){
if(!str.include(arr[i]))
return str.push(arr[i])
}
}
方法5、利用filter
const unique4 = arr => {
return arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
}
---arr.indexOf(item)
---filter不会改变原数组、不会对空数组检查
array.filter(function(currentValue,index,arr)
currentValue: 必须,当前元素的值
index:可选,当前元素的索引值
arr:可选,当前元素属于的数组对象
方法6、利用map
const unique5 = arr => {
const map = new Map()
const str = []
const len = arr.length
for(let i = 0;i<len;i++){
if (!map.has(arr[i])) {
map.set(arr[i], true)
res.push(arr[i]);
}
}
return res;
}