entries() 方法:
概述: entries() 方法返回一个 Array Iterator(数组迭代) 对象,该对象包含数组中每一个索引的键值对。
示例:
let arr = ["a", "b", "c"];
let eArr = arr.entries();
console.log(eArr);//数组迭代对象
console.log(eArr.next().value); // [0, "a"]
console.log(eArr.next().value); // [1, "b"]
console.log(eArr.next().value); // [2, "c"]
keys()方法:
概述: 数组的 keys()
方法返回一个数组索引的迭代器。(该方法和entries方法相似)
示例:
示例1:
var arr = ["a", "b", "c"];
var iterator = arr.keys();
console.log(iterator.next()); // { value: 0, done: false }
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
示例2:
var arr = ["a", "b", "c"];
var iterator = arr.keys();
for(var i=0;i<arr.length;i++){
console.log(iterator.next());
}
打印结果:
aaarticlea/png;base64,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" alt="" />
示例3:索引迭代器会包含那些没有对应元素的索引
var arr = ['a','b',,'f'];
var sparseKeys = Object.keys(arr);
var denseKeys = [...arr.keys()];
console.log(sparseKeys); //["0", "1", "3"]
console.log(denseKeys); // [0, 1, 2, 3]
示例4:
var arr = ['a','b',,'f'];
var iterator = arr.keys();
for(var i=0;i<arr.length;i++){
console.log(iterator.next());
console.log('数组arr第'+(i+1)+'个元素的值是:'+arr[i]);
}
打印结果:
aaarticlea/png;base64,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" alt="" />
forEach()方法:
概述: forEach() 方法让数组的每一项都执行一次给定的函数。
参数:
callback
:用来测试每个元素的函数;(注意:callback
只会被有值的索引调用,不会被那些被删除或从来未被赋值的索引调用)
currentValue:当前项(指遍历时正在被处理那个数组项)的值。
index:当前项的索引(或下标)。
array
:数组本身。
thisArg
:执行 callback
时使用的 this
值。(
。并不说只能传这几种类型的值哦thisArg
传:number、string、object、Boolean、null、undefined这几种类型的值都可以)
描述:
如果给forEach传递了thisArg
参数,它将作为 callback
函数的执行上下文,类似执行如下函数callback.call(thisArg, element, index, array)
。如果 thisArg
值为 undefined
或 null
,函数的this
值取决于当前执行环境是否为严格模式(严格模式下为 undefined,非严格模式下为全局对象)。
forEach
遍历的范围在第一次调用 callback
前就会确定。调用forEach
后添加到数组中的项不会被 callback
访问到。如果已经存在的值被改变,则传递给 callback
的值是 forEach
遍历到他们那一刻的值。已删除的项不会被遍历到。
示例:
var obj=[{
id:1,
name:'张甜甜',
age:20
},{
id:2,
name:'一丢丢',
age:22
},{
id:3,
name:'zen',
age:28
},{
id:4,
name:'张小颖',
age:22
},{
id:5,
name:'五河士道',
age:20
}];
obj.forEach(function(item){
console.log('第'+item.id+'个学生:'+item.name+'的年龄是:'+item.age);
});
打印结果:
aaarticlea/png;base64,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" alt="" />
map()方法:
概述: map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
参数:
callback
:用来测试每个元素的函数;(注意:callback
只会被有值的索引调用,不会被那些被删除或从来未被赋值的索引调用)
currentValue:数组中当前被传递的元素。
index:数组中当前被传递的元素的索引。
array
:调用 map
方法的数组。
thisArg
:执行 callback
时使用的 this
值。(
。并不说只能传这几种类型的值哦thisArg
传:number、string、object、Boolean、null、undefined这几种类型的值都可以)
描述:
如果 thisArg
参数有值,则每次 callback
函数被调用的时候,this
都会指向 thisArg
参数上的这个对象。如果省略了 thisArg
参数,
或者赋值为 null
或 undefined
,则 this 指向全局对象 。
map
不修改调用它的原数组本身(当然可以在 callback
执行时改变原数组)。
使用 map 方法处理数组时,数组元素的范围是在 callback 方法第一次调用之前就已经确定了。在 map 方法执行的过程中:原数组中新增加的元素将不会被 callback 访问到;若已经存在的元素被改变或删除了,则它们的传递到 callback 的值是 map 方法遍历到它们的那一时刻的值;而被删除的元素将不会被访问到。
示例:
var nameData=['豆豆','大云','小二']
function findName(single){
if(single=='大云'){
single+='good';
}
return single;
}
let mapData1=nameData.map(findName);
console.log(mapData1);//["豆豆", "大云good", "小二"],
console.log(nameData);//["豆豆", "大云", "小二"]
fill()方法:
概述: fill()
方法,可以将一个数组中指定区间的所有元素的值, 都替换成或者说填充成为某个固定的值。会改变原数组的值
参数:
value:用来填充数组元素的值。
start:可选,开始索引。
end
:可选,结束索引。
描述:
具体要填充的元素区间是 [start
, end
) , 一个半开半闭区间.
fill
方法接受三个参数 value
, start
以及 end
. start
和 end
参数是可选的, 其默认值分别为 0
和 this
对象的 length 属性值
.
如果 start
是个负数, 则开始索引会被自动计算成为 length+start, 其中
length
是 this
对象的 length 属性值
. 如果 end
是个负数, 则结束索引会被自动计算成为 length+end
.
fill 方法故意被设计成通用方法, 也就是说它不需要 this
值必须是个数组对象, 类数组对象也是可以调用该方法的 .
fill 方法是个可变方法, 它会改变调用它的 this
对象本身, 然后返回它, 而并不是返回一个副本.
示例:
var a=[1,2,,4,6],b=[2,0,5,,6,8],c=['a','b','c',,'e',5,6,6],d=['a','b',,'e',5,6,8],e=['a','b',,'e',5,6,8];
console.log(a.fill(4));//
console.log(a);//
console.log(b.fill(1, 1, 7));//
console.log(b);//
console.log(c.fill(1, -3, -1));//
console.log(c);//
console.log(d.fill(1, -1, -3));//
console.log(d);//
console.log(e.fill(2, -5, -8));//
console.log(e);//
打印结果:
aaarticlea/png;base64,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" alt="" />
includes()方法:
概述: includes() 方法用来判断当前数组是否包含某指定的值,如果是,则返回 true,否则返回 false。
参数:
searchElement:需要查找的元素值。
fromIndex:可选参数。从该索引处开始查找
searchElement
,默认为 0。
示例:
console.log([1, 2, 3].includes(2,1));//true
console.log([1, 2, 3].includes(2,2));//false
console.log([1, 2, 3].includes(2,-2));//true
indexOf()方法:
概述: indexOf()方法
返回给定元素能找在数组中找到的第一个索引值,否则返回-1。
参数:
searchElement:需要查找的元素值。
fromIndex:开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。 注意:如果参数中提供的索引值是一个负值,仍然从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0.
描述:
indexOf
使用strict equality (无论是 ===, 还是 triple-equals操作符都基于同样的方法)进行判断searchElement与
数组中包含的元素之间的关系。
示例:
示例1:
使用
indexOf方法确定多个值在数组中的位置。
var a=["1", "3", "2", "3", "0"];
console.log(a.indexOf ('3'));//
console.log(a.indexOf (5,'0'));//-1
console.log(a.indexOf ('0'));//
console.log(a.indexOf ('0',-5));//
console.log(a.indexOf ('3',-1));//-1
console.log(a.indexOf ('3',-3));//
console.log(a.indexOf ('1',5));//-1
console.log(a.indexOf (3));//-1
console.log(a);//["1", "3", "2", "3", "0"]
示例2:
使用
indexOf方法找出指定元素出现的所有位置。
var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.indexOf(element);
while (idx != -1) {
indices.push(idx);
idx = array.indexOf(element, idx + 1);
}
console.log(indices);//[0, 2, 4]
示例3:
使用
indexOf方法判断一个元素是否在数组里,不在则更新数组
。
function updateVegetablesCollection (veggies, veggie) {
if (veggies.indexOf(veggie) === -1) {
veggies.push(veggie); //新的蔬菜集合:土豆、番茄、辣椒、青椒、菠菜
console.log('New veggies collection is : ' + veggies);//New veggies collection is : potato,tomato,chillies,green-pepper,spinach
} else if (veggies.indexOf(veggie) > -1) { //番茄已经存在于蔬菜集合
console.log(veggie + ' already exists in the veggies collection.');//tomato already exists in the veggies collection.
}
} //土豆 番茄 辣椒 青椒
var veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];
//菠菜
updateVegetablesCollection(veggies, 'spinach');
updateVegetablesCollection(veggies, 'tomato');
lastIndexOf()方法:
概述: lastIndexOf()
方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex
处开始。
参数:
searchElement:需要查找的元素值。
fromIndex:开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找
,以此类推。 注意:如果参数中提供的索引值是一个负值,仍然从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0.
描述:
lastIndexOf
使用严格相等(strict equality,即 ===)比较 searchElement
和数组中的元素。
示例:
示例1:
使用
lastIndexOf
定位数组中的值的位置。
var array = [2, 5, 9, 2];
console.log(array.lastIndexOf(2));//
console.log(array.lastIndexOf(7));//-1
console.log(array.lastIndexOf(2, 3));//
console.log(array.lastIndexOf(2, 2));//
console.log(array.lastIndexOf(2, -2));//
console.log(array.lastIndexOf(2, -1));//
console.log(array.lastIndexOf(2, -4));//
console.log(array.lastIndexOf(2, -5));//-1
示例2:
使用
lastIndexOf
查找到一个元素在数组中所有的索引(下标)。
var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.lastIndexOf(element);
while (idx != -1) {
indices.push(idx);
idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
}
console.log(indices);//[4, 2, 0]
join()方法:
概述: join() 方法将数组中的所有元素连接成一个字符串。
参数:
separator
:可选,用于指定连接每个数组元素的分隔符。分隔符会被转成字符串类型;如果省略的话,默认为一个逗号。如果 seprator
是一个空字符串,那么数组中的所有元素将被直接连接。
描述:
所有的数组元素被转换成字符串,再用一个分隔符将这些字符串连接起来。如果元素是undefined 或者null, 则会转化成空字符串。
示例:
var a = ['苹果', '火龙果', '榴莲'];
console.log('我爱吃:'+a.join());// 我爱吃:苹果,火龙果,榴莲
console.log('我爱吃:'+a.join(', ')); //我爱吃:苹果, 火龙果, 榴莲
console.log('我爱吃:'+a.join(' + ')); //我爱吃:苹果 + 火龙果 + 榴莲
console.log(a);//["苹果", "火龙果", "榴莲"]
console.log('我爱吃:'+a.join('')); //我爱吃:苹果火龙果榴莲
reduce
()方法:
概述: reduce()
方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。
参数:
callback:执行数组中每个值的函数,包含四个参数
previousValue:上一次调用回调返回的值,或者是提供的初始值
currentValue:数组中当前被处理的元素
index:
当前元素在数组中的索引
array:调用 reduce
的数组
initialValue:作为第一次调用 callback 的第一个参数。
描述:
reduce
为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce
的数组。
回调函数第一次执行时,previousValue
和 currentValue
的取值有两种情况,如果 initialValue 在调用 reduce 时被提供,那么第一个 previousValue 等于 initialValue ,并且currentValue 等于数组中的第一个值;如果initialValue 未被提供,那么previousValue 等于数组中的第一个值,currentValue等于数组中的第二个值。
如果数组为空并且没有提供initialValue, 会抛出TypeError
。如果数组仅有一个元素(无论位置如何)并且没有提供initialValue, 或者有提供initialValue但是数组为空,那么此唯一值将被返回并且callback不会被执行。
示例:
示例1:
var reduceValue = [0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
});
console.log(reduceValue);//
previousValue |
currentValue |
index |
array |
return value | |
first call | 0 |
1 | 1 | [0,1,2,3,4] |
1 |
second call | 1 | 2 | 2 | [0,1,2,3,4] |
3 |
third call | 3 | 3 | 3 | [0,1,2,3,4] |
6 |
fourth call | 6 | 4 | 4 | [0,1,2,3,4] |
10 |
示例2:
var reduceValue=[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
}, 10);
console.log(reduceValue);//
previousValue |
currentValue |
index |
array |
return value | |
first call | 10 |
0 | 0 | [0,1,2,3,4] |
|
second call | 10 | 1 | 1 | [0,1,2,3,4] |
11 |
third call | 11 | 2 | 2 | [0,1,2,3,4] |
13 |
fourth call | 13 | 3 | 3 | [0,1,2,3,4] |
16 |
fifth call | 16 | 4 | 4 | [0,1,2,3,4] |
20 |
示例3:
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
return a.concat(b);
});
// flattened is [0, 1, 2, 3, 4, 5]
reduceRight()
方法:
概述: reduceRight()
方法接受一个函数作为累加器(accumulator),让每个值(从右到左,亦即从尾到头)缩减为一个值。(与 reduce()
的执行方向相反)
参数:
callback:执行数组中每个值的函数,包含四个参数
previousValue:上一次调用回调返回的值,或者是提供的初始值
currentValue:数组中当前被处理的元素
index:
当前元素在数组中的索引
array:调用 reduce
的数组
initialValue:作为第一次调用 callback 的第一个参数。
描述:
reduceRight
为数组中每个元素调用一次 callback
回调函数,但是数组中被删除的索引或从未被赋值的索引会跳过。回调函数接受四个参数:初始值(或上次调用回调的返回值)、当前元素值、当前索引,以及调用 reduce
的数组。
首次调用回调函数时,previousValue
和 currentValue
可以是两个值之一。如果调用 reduceRight
时提供了 initialValue
参数,则 previousValue
等于 initialValue
,currentValue
等于数组中的最后一个值。如果没有提供 initialValue
参数,则 previousValue
等于数组最后一个值, currentValue
等于数组中倒数第二个值。
如果数组为空,且没有提供 initialValue
参数,将会抛出一个 TypeError 错误。如果数组只有一个元素且没有提供
initialValue
参数,或者提供了 initialValue
参数,但是数组为空将会直接返回数组中的那一个元素或 initialValue
参数,而不会调用 callback
。
示例:
示例1:
var reduceRightValue=[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
});
console.log(reduceRightValue);//
previousValue |
currentValue |
index |
array |
return value | |
first call | 4 |
3 | 3 | [0,1,2,3,4] |
7 |
second call | 7 | 2 | 2 | [0,1,2,3,4] |
9 |
third call | 9 | 1 | 1 | [0,1,2,3,4] |
10 |
fourth call | 10 | 0 | 0 | [0,1,2,3,4] |
10 |
示例2:
var reduceRightValue=[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
},2);
console.log(reduceRightValue);//
previousValue |
currentValue |
index |
array |
return value | |
first call | 2 |
4 | 4 | [0,1,2,3,4] |
|
second call | 6 | 3 | 3 | [0,1,2,3,4] |
9 |
third call | 9 | 2 | 2 | [0,1,2,3,4] |
11 |
fourth call | 11 | 1 | 1 | [0,1,2,3,4] |
12 |
fifth call | 12 | 0 | 0 | [0,1,2,3,4] |
12 |
示例3:
var flattened = [
[0, 1],
[2, 3],
[4, 5]
].reduceRight(function(a, b) {
return a.concat(b);
}, []);
console.log(flattened); //[4, 5, 2, 3, 0, 1]
reverse()
方法:
概述: reverse()
方法颠倒数组中元素的位置。第一个元素会成为最后一个,最后一个会成为第一个。会改变原数组的值
描述:
reverse
方法颠倒数组中元素的位置,并返回该数组的引用。
示例:
var myArray = [1, 2, 3];
myArray.reverse();
console.log(myArray) //[3, 2, 1]
slice()
方法:
概述: slice()
方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。
参数:
begin:从该索引处开始提取原数组中的元素(从0开始)。
如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2)表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
如果省略 begin,则slice从索引0开始。
end:在该索引处结束提取原数组元素(从0开始)。slice会提取原数组中索引从begin到end的所有元素(包含begin,但不包含end)。
slice(1,4)提取原数组中的第二个元素开始直到第四个元素的所有元素(索引为1,2,3的元素)。
如果该参数为复数,则它表示在原数组中的倒数第几个元素结束抽取。slice(-2,-1)表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
如果end被省略,则slice会一直提取到原数组末尾。
描述:
slice不修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组,原数组的元素会按照下述规则拷贝:
如果该元素是个对象引用(不是实际的对象),slice会拷贝这个对象引用到新的数组里。两个对象引用都引用了同一个对象。如果被引用的对象发生改变,则新的和原来的数组中的这个元素也会发生改变。
对于字符串、数字及布尔值来说(不是String、Number或者Boolean对象),slice会拷贝这些数值到新的数组里。在别的数组里修改这些字符串或数字或是布尔值,将不会影响另一个数组。
如果像两个数组任意一个中添加了新元素,则另一个不会收到影响。
示例:
var myArray = [1, 2, 3,,5,6,7];
console.log(myArray.slice(1,9));
console.log(myArray.slice(1,5));
console.log(myArray);
console.log(myArray.slice(-2));
console.log(myArray.slice(-4,-1));
console.log(myArray.slice(-9,-1));
aaarticlea/png;base64,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" alt="" />
sort()
方法:
概述: sort()
方法对数组的元素做原地的排序,并返回这个数组。 sort 排序可能是不稳定的。默认按照字符串的Unicode码位点(code point)排序。会改变原数组的值
参数:
compareFunction
:可选。用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的诸个字符的Unicode位点进行排序。
描述:
如果没有指明 compareFunction
,那么元素会按照转换为的字符串的诸个字符的Unicode位点进行排序。例如 "Banana" 会被排列到 "cherry" 之前。数字比大小时,9 出现在 80 之前,但这里比较时数字会先被转换为字符串,所以 "80" 比 "9" 要靠前。
示例:
示例1:
var fruit = ['cherries', 'apples', 'bananas'];
console.log(fruit.sort()); //["apples", "bananas", "cherries"]
console.log('数组fruit:'+fruit); //数组fruit:apples,bananas,cherries
var scores = [1, 10, 2, 21];
console.log(scores.sort()); // [1, 10, 2, 21]
console.log('数组scores:'+scores); //数组scores:1,10,2,21
var things = ['word', 'Word', '1 Word', '2 Words'];
console.log(things.sort()); // ["1 Word", "2 Words", "Word", "word"]
console.log('数组things:'+things); //数组things:1 Word,2 Words,Word,word
如果指明了 compareFunction
,那么数组会按照调用该函数的返回值排序。记 a 和 b 是两个将要被比较的元素:
- 如果
compareFunction(a, b)
小于 0 ,那么 a 会被排列到 b 之前;
- 如果
compareFunction(a, b)
等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
- 如果
compareFunction(a, b)
大于 0 , b 会被排列到 a 之前。 -
compareFunction(a, b)
必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。
示例2:
var numbers = [4, 2, 5, 1, 3,21];
numbers.sort(function(a, b) {
return a > b;
});
console.log(numbers);//[1, 2, 3, 4, 5, 21]
toLocaleString()
方法:
概述: toLocaleString()
返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString
方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。
描述:
数组中的元素将会使用各自的 toLocaleString 方法:
-
Object
:Object.prototype.toLocaleString()
-
Number
:Number.prototype.toLocaleString()
-
Date
:Date.prototype.toLocaleString()
示例:
示例1:
var numbers = [4, 2, 5, 1, 3,21];
console.log(numbers.toLocaleString()); //4,2,5,1,3,21
console.log(numbers);//[4, 2, 5, 1, 3, 21]
示例2:
var number = '今天的时间:';
var date = new Date();
var myArr = [number, date, "西安"];
var str = myArr.toLocaleString();
console.log(str);//今天的时间:,2016/10/28 下午4:06:42,西安:
toString()
方法:
概述: toString()
返回一个字符串,表示指定的数组及其元素。
描述:
Array
对象覆盖了 Object
的 toString
方法。对于数组对象,toString
方法返回一个字符串,该字符串由数组中的每个元素的 toString()
返回值经调用 join()
方法连接(由逗号隔开)组成。例如,下面的代码创建了一个数组,然后使用 toString
方法把该数组转成一个字符串。
示例:
示例1:
var numbers = [4, 2, 5, 1, 3,21];
console.log(numbers.toString()); //4,2,5,1,3,21
console.log(numbers);//[4, 2, 5, 1, 3, 21]
示例2:
var number = '今天的时间:';
var date = new Date();
var myArr = [number, date, "西安"];
var str = myArr.toString();
console.log(str);//今天的时间:,Fri Oct 28 2016 16:52:41 GMT+0800 (中国标准时间),西安: