大佬教程收集整理的这篇文章主要介绍了JavaScript你不知道的一些数组方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
concat
注意,a数组并没有改变,只是返回了一个新数组。
copyWithin
它接受三个参数。
target (必需):从该位置开始替换数据。
start (可选):从该位置开始读取数据,默认为 0 。如果为负值,表示倒数。
end (可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
这三个参数都应该是数值,如果不是,会自动转为数值
5].copyWithin(0,4)
// [4,
5]
// -2 相当于 3 号位, -1 相当于 4 号位
[1,-2,-1)
// [4,
5]
// 将 3 号位复制到 0 号位
[].copyWithin.call(
{length: 5,3: 1},3)
//
{0: 1,3: 1,length: 5}
// 将 2 号位到数组结束,复制到 0 号位
var i32a = new Int32Array([1,
5]);
i32a.copyWithin(0,2
);
// Int32Array
[3,
5]
// 对于没有部署 TypedArray 的 copyWithin 方法的平台
// 需要采用下面的写法
[].copyWithin.call(new Int32Array([1,
5]),4
);
// Int32Array [4,
5]
entries
);
en.next().value;//[0.1];
返回一个迭代对象
every
= 10
);
}
var passed = [12,8,130,44].every(isBigEnough
);
// passed is
false
passed = [12,54,18,44].every(isBigEnough
);
// passed is true
每项都通过测试函数返回true,否则返回false
fill
); // [4,4]
[].fil
l.call(
{length: 3},4) //
{0: 4,1: 4,2: 4,length: 3}
改变的是数组本身
filter
= 10;
}
var filtered = [12,44].filter(isBigEnough
);
// filtered is [12,44]
返回一个新的数组
find
方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefind
450_60@= 1
5;
}
[12,44].find(isBigEnough
); // 130
findIndex
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
450_60@= 1
5;
}
[12,44].findIndex(isBigEnough
); // 3
forEach
{
console.log(element
);
}
);
// a
// b
// c
//语法
array.forEach(call
BACk(currentValue,array)
{
//do something
},this)
array.forEach(call
BACk[,thisArg])
callBACk
当前值)
数组中正
在处理的当前元素。
index(索引)
数组中正
在处理的当前元素的索引。
array
forEach()方法正在操作的数组。
thisArg可选
可选参数。当执行回调 函数时用作this的值(参
考对象)
注意: 没有办法中止或者跳出 forEach 循环,除了抛出一个异常。如果你需要这样,使用forEach()方法是错误的,你可以用一个简单的循环作为替代。如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 Array.every,Array.some。如果可用,新方法 find()或者findIndex()也可被用于真值测试的提早终止。
include
Helement)
arr.includes(searc
Helement,fromInde
X)
参数
searcHelement
需要查找的元素值。
fromIndex
可选
从该索引处开始查找 searcHelement
。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
返回值
一个 Boolean。
); // true
[1,3].includes(4
); //
false
[1,3].includes(3,3
); //
false
[1,-1
); // true
[1,NaN].includes(NaN
); // true
indexOf
Helement)
arr.indexOf(searc
Helement[,fromIndex = 0])
参数
searcHelement
要查找的元素
fromIndex
开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。 注意:如果参数中提供的索引值是一个负值,仍然从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0.
返回值
首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1
); // 0
a.indexOf(6
); // -1
a.indexOf(7
); // 2
a.indexOf(8
); // 3
a.indexOf(
9); // 1
if (a.indexOf(3) === -1)
{
// element doesn't exist in array
}
join
默认为 ","
str = arr.join("")
// 分隔符 === 空字符串 ""
str = arr.join(separator)
// 分隔符
keys
keys() 方法返回一个新的Array迭代器,它包含数组中每个索引的键
);
// undefined
console.log(iterator
);
// Array Iterator
{}
console.log(iterator.next()
);
// Ob
ject
{value: 0,done:
fals
E}
console.log(iterator.next()
);
// Ob
ject
{value: 1,done:
fals
E}
console.log(iterator.next()
);
// Ob
ject
{value: 2,done:
fals
E}
console.log(iterator.next()
);
// Ob
ject
{value: undefined,done: tru
E}
@H_701_1@map
@H_985_0
@map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
{
return x * 2;
}
);
// doubles is now [2,20,
30]
//
numbers is still [1,1
5]
let
numbers = [1,9];
let roots =
number
s.map(Math.sqrt
);
// roots is now [1,3]
//
numbers is still [1,9]
callBACk
生成新数组元素的函数,使用三个参数:
currentValue
callBACk 的第一个参数,数组中正在处理的当前元素。
index
callBACk 的第二个参数,数组中正在处理的当前元素的索引。
array
callBACk 的第三个参数,map 方法被调用的数组。
thisArg
可选的。执行 callBACk 函数时 使用的this 值。
返回值
一个新数组,每个元素都是回调函数的结果。
pop和push
pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
push() 方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。
arr.push(element1,...,elementN)
合并两个数组
该示例使用 apply() 添加第二个数组的所有元素。
注意当第二个数组(如示例中的moreVegs)太大时不要使用这个方法来合并数组,因为事实上一个函数能够接受的参数个数是有限制的。具体可以参考 apply()
s.push('celery','beetroot'
);
Array.prototype.push.apply(vegetables,moreVegs
);
console.log(vegetables
);
// ['parsnip','potato','celery','beetroot']
reduce和reduceRight
reduce() 方法对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值。
Tindex,array),initial
value)
var @R_384_1
0586@l = [0,3].reduce(function(sum,
value) {
return sum + value;
},0
);
// @R_384_1
0586@l is 6
var flattened = [[0,1],[2,3],[4,
5]].reduce(function(a,b)
{
return a.concat(b
);
},[]
);
// flattened is [0,
5]
执行数组中每个值的函数,包含四个参数
accumulator
上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue
数组中正在处理的元素
currenTindex
数据中正在处理的元素索引,如果提供了 initialValue ,从0开始;否则从1开始
array
调用 reduce 的数组
initialValue
可选项,其值用于第一次调用 callBACk 的第一个参数。如果没有设置初始值,则将数组中的第一个元素作为初始值。空数组调用reduce时没有设置初始值将会报错。
PS: 与 reduceRight()和reduce() 的执行方向相反
reverse
reverse 方法颠倒数组中元素的位置,并返回该数组的引用。
shift与unshift
shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度。
slice
slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。
);
//[0,end];
arr.slice(start
);
//[start,end];
arr.slice(start,end
);
//[start,end];
slice不修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。原数组的元素会按照下述规则拷贝:
如果该元素是个对象引用 (不是实际的对象),slice会拷贝这个对象引用到新的数组里。两个对象引用都引用了同一个对象。如果被引用的对象发生改变,则新的和原来的数组中的这个元素也会发生改变。
对于字符串、数字及布尔值来说不是String、number或者Boolean,slice会拷贝这些值到新的数组里。在别的数组里修改这些字符串或数字或是布尔值,将不会影响另一个数组。
如果向两个数组任一中添加了新元素,则另一个不会受到影响
some
some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。
{
return element > 10;
}
[2,4].some(isBiggerThan10
);
//
false
[12,4].some(isBiggerThan10
);
// true
toLocaleString() 返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。
number = 1337;
var date = new Date(
);
var myArr = [
number,date,"foo"];
var str = myArr.toLocale
String(
);
console.log(str
);
// 输出 "1,337,2017/8/13 下午8:32:24,foo"
// 假定运行在中文(zh-CN)环境,北京时区
var a=1234
a.to
String()
//"1234"
a.toLocale
String()
//"1,234"
//当数字是四位及以上时,toLocale
String()会让数字三位三位一分隔,像我们有时候数字也会三位
一个分号
var sd=new Date()
sd
//Wed Fe
b 15 2017 11:21:31 GMT+0800 (CST)
sd.toLocale
String()
//"2017/2/15 上午11:21:31"
sd.to
String()
//"Wed Fe
b 15 2017 11:21:31 GMT+0800 (CST)"
splice
splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。
deleteCount)
array.splice(start,
deleteCount,item1,item2,...)
start
指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从1计数)。
deleteCount 可选
整数,表示要移除的数组元素的个数。如果 deleteCount 是 0,则不移除元素。这种情况下,至少应添加一个新元素。如果 deleteCount 大于start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。
如果deleteCount被省略,则其相当于(arr.length - start)。
item1,... 可选
要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。
返回值
由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
大佬总结
以上是大佬教程为你收集整理的JavaScript你不知道的一些数组方法全部内容,希望文章能够帮你解决JavaScript你不知道的一些数组方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。