列举一下JavaScript数组和对象有哪些原生方法?
1、数组:
arr.concat(arr1, arr2, arrn);
arr.fill(value,start,end);
arr.filter((element,index,array)=>{},this);
arr.reduce((previousValue,currentValue,index,array) => {},initialValue);
arr.join(",");
arr.sort();
arr.unshift(e1, e2, en);
arr.push(e1, e2, en);
arr.pop();
arr.shift();
arr.splice(index, count);
arr.reverse();
arr.slice(start, end);
arr.splice(index, count, e1, e2, en);
arr.indexOf(searchElement,fromIndex);
arr.includes(searchElement,fromIndex);
arr.map((currentValue,index,array) => {} ,this);
arr.forEach((currentValue,index,array) => {} ,this);
arr.from(arrayLike,(currentValue) => {} ,this);
arr.find((element,index,array) => {} ,this);
arr.findIndex((element,index,array) => {} ,this);
arr.flat(depth);
arr.flatMap((currentValue,index,array) => {} ,this);
arr.some((element,index,array)=>{},this)
arr.every((element,index,array)=>{},this)
2、对象:
Object.assign();
Object.defineProperty() ;
object.hasOwnProperty(prop);
Object.getOwnPropertyNames();
object.propertyIsEnumerable(prop);
object.valueOf();
object.toString();
Object.create();
Class.prototype.isPropertyOf(object);
Object.keys() ;
Object.values();
Object.entries();
Object.setPrototypeOf();
Object.getPrototypeOf();
3、Array.splice() 与 Array.splice() 的区别?
arr.slice(开始位置(含), 结束位置(不含)):
arr.splice(index, count, [insert Elements]):
index :
count = 0 :
count > 0 :
[insert Elements] :
4、数组去重方法总结:
function unique(array) {
return Array.from(new Set(array));
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
- 方法二、利用for嵌套for,然后splice去重(ES5中最常用)
function unique(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;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array = [];
for (var i = 0; i < arr.length; i++) {
if (array .indexOf(arr[i]) === -1) {
array .push(arr[i])
}
}
return array;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return;
}
arr = arr.sort()
var arrry= [arr[0]];
for (var i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i-1]) {
arrry.push(arr[i]);
}
}
return arrry;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var arrry= [];
var obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i]]) {
arrry.push(arr[i])
obj[arr[i]] = 1
} else {
obj[arr[i]]++
}
}
return arrry;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array =[];
for(var i = 0; i < arr.length; i++) {
if( !array.includes( arr[i]) ) {
array.push(arr[i]);
}
}
return array
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
var obj = {};
return arr.filter(function(item, index, arr){
return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
})
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
return arr.filter(function(item, index, arr) {
return arr.indexOf(item, 0) === index;
});
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array =[];
for(var i = 0; i < arr.length; i++) {
if( !array.includes( arr[i]) ) {
array.push(arr[i]);
}
}
return array
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr) {
let map = new Map();
let array = new Array();
for (let i = 0; i < arr.length; i++) {
if(map .has(arr[i])) {
map .set(arr[i], true);
} else {
map .set(arr[i], false);
array .push(arr[i]);
}
}
return array ;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
function unique(arr){
return arr.reduce((prev,cur) => prev.includes(cur) ? prev : [...prev,cur],[]);
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr));
[...new Set(arr)]
5、快速的让一个数组乱序
var arr = [1,2,3,4,5,6,7,8,9,10];
arr.sort(function(){
return Math.random() - 0.5;
})
console.log(arr);
6、判断是否是数组
Array.isArray(arr)
Object.prototype.toString.call(arr) === '[Object Array]'
arr instanceof Array
array.constructor === Array