```javascript
*Object.getOwnPropertyNames(Array)*
*Object.getOwnPropertyNames(Array.prototype)*
"reverse", "shift", "unshift", "slice", "sort", "splice", "includes", "indexOf", "keys", "entries",
"forEach", "filter", "map", "every", "some", "reduce", "reduceRight", "toString", "toLocaleString",
"join", "lastIndexOf", "values", "flat", "flatMap" ]
Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象
Array.prototype 属性表示 Array 构造函数的原型,并允许您向所有Array对象添加新的属性和方法。
## Array.prototype 的用法
1. 给 Array 对象添加新的方法
```javascript
Array.prototype.duplicator = function() {
let s = this.concat(this)
return s
}
let t = [1,2,3,4,5].duplicator()
console.log(t) // [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
- JS合并两个数组的方法
var array = ["football", "basketball"];
var array2 = ["volleyball", "golfball"];
var i = Array.prototype.push.apply(array,array2);
console.log(array);
console.log(i);
作者:思念LY
链接:https://www.jianshu.com/p/7e4a947da897
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
**1.原生js方法**
Array.prototype.flatArr = function(){
var arr = [];
function hanle(s){
for(var i=0,j=s.length;i<j;i++){
if(Array.isArray(s[i])){
hanle(s[i]);
}else{
arr.push(s[i]);
}
}
}
hanle(this);
return arr;
}
console.log([1,[2,3,[4,5]]].flatArr());
**Polyfill**
假如不存在 Array.isArray(),则在其他代码之前运行下面的代码将创建该方法。
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
**2.ES6内置方法**
[1, [2, [3]]].flat(Infinity)