类数组转换为数组、数组去重
类数组转换为数组
- reset
- 原生迭代器
function foo(a,b){
console.log(arguments); //Arguments {“0”:1,“1”:2},类数组
console.log([…arguments]); //[1,2]}
foo(1,2);
- 自己添加迭代器
let test = {
0: 'a',
1: 'b',
2: 'c',
length: 3,
[Symbol.iterator]: Array.prototype[Symbol.iterator]
};
console.log(test);
console.log([...test]);
- Array.from
function foo(a,b){
console.log(arguments); //Arguments {“0”:1,“1”:2},类数组
console.log(Array.from(arguments)); //[1,2]}
foo(1,2);
- Array.prototype.slice.call()
function foo(a,b){
console.log(arguments); //Arguments {“0”:1,“1”:2},类数组
console.log(Array.from(arguments)); //[1,2]}
foo(1,2);
数组去重
es6
- 使用Array.from和Set(Set不允许有重复的元素)
let arr = [1,2,1,2,3];
let result = new Set(arr);
console.log(result); //Set {1,2,3}
console.log(Array.from(result)); //[1,2,3]
- 使用rest和Set
let arr = [1,2,1,2,3];
let result = new Set(arr);
console.log(result); //Set {1,2,3}
console.log(…result); //1 2 3
console.log([…result]); //[1,2,3]
es5
- 使用indexOf
var arr = [1,2,1,2,3];
Array.prototype.myInfo = function(){
var newArr = [];
for(var i=0;i<arr.length;i++){
var a = newArr.indexOf(arr[i]);
if(a == -1){
newArr[newArr.length] = arr[i];
}
}
return newArr;
}
var result = arr.myInfo();
console.log(result);
【indexOf】:可返回某个指定的字符串值在字符串中首次出现的位置,如果首次出现,返回-1