js数组有哪些API

一个数组有这些方法
concat

concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

//把 concat() 中的参数连接到数组 a
var a = [1,2,3]
a  // [1, 2, 3]
a.concat(4,5)  //[1, 2, 3, 4, 5]  返回被连接数组的一个副本
a // [1, 2, 3]  该方法不会改变现有的数组
------------------------------------------------------

//使用 concat()连接两个数组
var arr1 = ["George","John","Thomas"]
var arr2 = ["James","Adrew","Martin"]
arr1.concat(arr2) // ["George", "John", "Thomas", "James", "Adrew", "Martin"] 
//返回被连接数组的一个副本
arr1 // ["George", "John", "Thomas"] 不会改变现有的数组
---------------------------------------------------------------------------

//如果连接3个数组
arr1.concat(arr2,arr3)

constructor

constructor n.构造器
返回对创建此对象的数组函数的引用
按照自己的理解的话,就是指向了是谁构造了自己。。

//判断自己的类型
var test=new Array();
if (test.constructor==Array){
    document.write("This is an Array");
}
if (test.constructor==Boolean){
    document.write("This is a Boolean");
}
if (test.constructor==Date){
    document.write("This is a Date");
}
if (test.constructor==String){
    document.write("This is a String");
}
//This is an Array

这样看起来好像和instanceof很像啊。疑问:constructor和instanceof有什么区别?

--------------------------------------------------------------------------
function employee(name,job,born){
  this.name=name;
  this.job=job;
  this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);  
bill.constructor   //bill的由谁构造的
//function employee(name, job, born){
//    this.name = name; 
//    this.job = job; 
//    this.born = born
//;}

copyWithin

copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,而不修改其大小。会改变原数组。

arr.copyWithin(target[, start[, end]])
target //从哪个地方修改,从0开始计算
start //从哪里开始复制,从0开始计算
end  //从哪里结束复制,从0开始计算,不包括这个下标值

a = [0,1,2,3,4,5]
a.copyWithin(3,0,2)   // [0, 1, 2, 0, 1, 5]  从第三个位置修改0~2(0,1)。
a //[0, 1, 2, 0, 1, 5]  改变原数组

entries

entries() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
Array Iterator是对象,它的原型(__proto__:Array Iterator)上有一个next方法,可用用于遍历迭代器取得原数组的[key,value]。

var a = [1,2,3]
var aa = a.entries()
aa  //Array Iterator {}  返回一个新的Array Iterator对象
aa.next() //{value: Array(2), done:false, value: (2) [0, 1], __proto__: Object}
aa.next() //{value: Array(2), done:false, value: (2) [1, 2], __proto__: Object}
aa.next() //{value: Array(2), done:false, value: (2) [2, 3], __proto__: Object}
aa.next()  //{value: undefined, done: true}  找不到
aa.next()  //{value: undefined, done: true}  找不到
aa.next()  //{value: undefined, done: true}  找不到

aa.next()返回值
/*{value: Array(2), done: false}
          done:false
          value:(2) [0, "a"]
           __proto__: Object
*/
// iterator.next()返回一个对象,对于有元素的数组,
// 是next{ value: Array(2), done: false };
// next.done 用于指示迭代器是否完成:在每次迭代时进行更新而且都是false,
// 直到迭代器结束done才是true。
// next.value是一个["key":"value"]的数组,是返回的迭代器中的元素值。

entries()其他方法 | MDN


every

every() 方法测试数组的所有元素是否都通过了指定函数的测试。

arr.every(callback[, thisArg])
// callback 用来测试每个元素的函数。
// thisArg 执行 callback 时使用的 this 值。

every 方法为数组中的每个元素执行一次 callback 函数,直到它找到一个使 callback 返回 false(表示可转换为布尔值 false 的值)的元素。如果发现了一个这样的元素,every 方法将会立即返回 false。否则,callback 为每一个元素返回 true,every 就会返回 true。
callback 只会为那些已经被赋值的索引调用。不会为那些被删除或从来没被赋值的索引调用。
callback 被调用时传入三个参数:元素值,元素的索引,原数组。
every 遍历的元素范围在第一次调用 callback 之前就已确定了。在调用 every 之后添加到数组中的元素不会被 callback 访问到。
every 和数学中的"所有"类似,当所有的元素都符合条件才返回true。另外,空数组也是返回true。

function callback(a){ 
    return(a>=8)
}
var passed1 = [8,9,10,12]
passed1.every(callback)  //true
var passed2= [8,9,1,10]
passed2.every(callback)  //false

fill

fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。
fill和copyWithin用法很像,fill是自定义修改数组,改变原数组;copyWithin是复制数组元素到指定位置,改变原数组。

arr.fill(value[, start[, end]])
//value 用来填充数组元素的值。
//start 起始索引,默认值为0。
//end 终止索引,默认值为 this.length。

[1, 2, 3].fill(4);               // [4, 4, 4] 替换值为4
[1, 2, 3].fill(4, 1);            // [1, 4, 4] 替换值为4,位置从1~3(不包括)
[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3] 替换值为4,位置从1~2(不包括)
[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3] 替换值为4,位置从1~1(不包括)
[1, 2, 3].fill(4, 3, 3);         // [1, 2, 3] 替换值为4,位置从3~3(不包括)
[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3] 位置从(3+-3)~(3+-2)=>0~1(不包括)
[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3] 替换值4,
[1, 2, 3].fill(4, 3, 5);         // [1, 2, 3] 替换值为4 从4~5(不包括)
\Array(3).fill(4);                // [4, 4, 4] 新数组,替换值为4
\[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3} 
\//绑定this,使用this的length,把4填充到this数组里面

\// Objects by reference.
var arr = Array(3).fill({}) // [{}, {}, {}];
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]


filter

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。


find
findIndex
forEach
includes
indexOf
join
keys
lastIndexOf
length
map
pop
push
reduce
reduceRight
reverse
shift
slice
some
sort
splice
toLocaleString
toString
unshift

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容