1. Array.from(array) 将一个类数组对象(具有length属性)转化成一个真正的数组
let arrayLike = {
0: 'tom',
1: '18',
2: '男',
3: ['湖北', '武汉'],
'length': 4
}
let arr = Array.from(arrayLike)
console.log(arr)
得到的结果是一个真正的数组 ["tom","18","男",["湖北", "武汉"]]
如果不写length属性返回一个[]空数组,
如果改变当前三项项数字会返回[Array(2), undefined, undefined, undefined]
如果将key 数字变成字符串 会返回[undefined, undefined, undefined, undefined]
2. new Set() Set本身就是构造函数 生成Set数据结构(类似于数组但不是数组,有size属性) 返回的数据结构所有元素都是唯一的 没有重复的值 一般称为集合 {} 有很多方法..........................未完待续
let list = new Set()
console.log(list) // {} 有size属性 size:0
console.log(new Set([1, 1, 1, 1, 12])) // {1,12} 数组去重
console.log(new Set('11 22')) //{"1", " ", "2"} 字符串去重
3. array.indexOf(item,start) 其中item参数必选 start 可选参数 返回item在
数组中的第一个的索引 没找到返回-1
4. 数组去重
//数组去重之Set方法
let arr = ['tom', '男', 18, 'tom']
function unique(arr) {
return Array.from(new Set(arr))
}
console.log(unique(arr));// ["tom", "男", 18]
//数组去重之filter方法 原始数组中每一项的索引是否等于当前索引值
let arr = ['tom', '男', 18, 'tom']
function unique(arr) {
return arr.filter(function(item, index, arr) {
return arr.indexOf(item, 0) === index;
});
}
console.log(unique(arr));// ['tom', '男', 18]
//利用for嵌套for,然后splice去重(ES5中最常用)
function unique(arr){
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
j--;//因为删除元素会改变下一项的索引 所以要先-在+
}
}
}
return arr;
}
5.数组排序
//冒泡排序(升序)
function sort(elements){
for(var i=0;i<elements.length-1;i++){
for(var j=0;j<elements.length-1-i;j++){
if(elements[j] > elements[j+1]){
var swap=elements[j];
elements[j]=elements[j+1];
elements[j+1]=swap;
}
}
}
}