javaScript-数组详解下

紧接上回咱们接着唠,想了解上篇主页查找

6.位置⽅法

 Array.prototype.indexOf()

indexOf() ⽅法可返回数组中某个指定的元素位置。

该⽅法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的 位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到 ⼀个 item,则返回 item 的第⼀次出现的位置。开始位置的索引为 0。 如果在数组中没找到指定元素则返回 -1。

语法 array.indexOf(item,start)

参数描述
item必须。查找的元素。
start可选的整数参数。开始检索的位置。它的取值是 0 stringObject.length - 1。如省略该参数,则将从 字符串的⾸字符开始检索。

返回值为 元素在数组中的位置,如果没有搜索到则返回 -1。

查找数组中的 "Apple" 元素:

var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
var a = fruits.indexOf("Apple");
 //a结果输出:2
 //以上输出结果意味着 "Apple" 元素位于数组中的第 3 个位置。

Array.prototype.lastIndexOf()

lastIndexOf() ⽅法可返回⼀个指定的元素在数组中最后出现的位置,从 该字符串的后⾯向前查找。 如果要检索的元素没有出现,则该⽅法返回 -1。

该⽅法将从尾到头地检索数组中指定元素 item。开始检索的位置在数组 的 start 处或数组的结尾(没有指定 start 参数时)。如果找到⼀个 item,则返回 item 从尾向前检索第⼀个次出现在数组的位置。数组的 索引开始位置是从 0 开始的。

如果在数组中没找到指定元素则返回 -1。 

语法 : array.lastIndexOf(item,start)

 var fruits = ["Banana", "Orange", "Apple", "Mango"];
 var a = fruits.lastIndexOf("Apple");
 //a输出结果:2
 //以上实例输出结果意味着 "Apple" 位于数组中的第 2 个位置.

返回值为 元素在数组中的位置(和indexof不同是如果有多个返回最后一个的数组位置),如果没有搜索到则返回 -1。

7.迭代⽅法

Array.prototype.every()

every() ⽅法⽤于检测数组所有元素是否都符合指定条件(通过函数提 供)。

every() ⽅法使⽤指定函数检测数组中的所有元素: 如果数组中检测到有⼀个元素不满⾜,则整个表达式返回 false , 且剩余的元素不会再进⾏检测。 如果所有元素都满⾜条件,则返回 true。

注意: every() 不会对空数组进⾏检测。 every() 不会改变原始数组。

语法 array.every(function(currentValue,index,arr), thisValue)

参数描述
function(currentValue, index,arr)必须。函数,数组中的每个元素都会执⾏ 这个函数
thisValue可选。对象作为该执⾏回调时使⽤,传递 给函数,⽤作 "this" 的值。 如果省略了 thisValue ,"this" 的值为 "undefined"
currentValue必须。当前元素的值
index可选。当前元素的索引值
arr  可选。当前元素属于的数组对象

返回值 布尔值,如果所有元素都通过检测返回 true,否则返回 false。

 检测数组 ages 的所有元素是否都⼤于等于 18 :

var ages = [32, 33, 16, 40];
 var result = ages.every(function (age) {
 return age >= 18
 })
 console.log(result);//输出结果为:false

Array.prototype.some()

some() ⽅法⽤于检测数组中的元素是否满⾜指定条件(函数提供)。

some() ⽅法会依次执⾏数组的每个元素: 如果有⼀个元素满⾜条件,则表达式返回true , 剩余的元素不会再 执⾏检测。 如果没有满⾜条件的元素,则返回false。

注意: some() 不会对空数组进⾏检测。

注意: some() 不会改变原始数组。

语法  array.some(function(currentValue,index,arr),thisValue)

布尔值。如果数组中有元素满⾜条件返回 true,否则返回 false。

检测数组中是否有元素⼤于 18:

 var ages = [32, 33, 16, 40];
 var result = ages.some(function (age) {
  return age >= 18
 })
 console.log(result);//输出结果为:true

Array.prototype.filter()

filter() ⽅法创建⼀个新的数组,新数组中的元素是通过检查指定数组中 符合条件的所有元素。

注意: filter() 不会对空数组进⾏检测。

注意: filter() 不会改变原始数组。

语法  array.filter(function(currentValue,index,arr), thisValue) 

返回值 返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返 回空数组。

返回数组 ages 中所有元素都⼤于 18 的元素:

var ages = [32, 33, 16, 40];
 var result = ages.filter(function (age) {
 return age >= 18
 })
 console.log(result);//输出结果为:[ 32, 33, 40 ]

Array.prototype.map()

map() ⽅法返回⼀个新数组,数组中的元素为原始数组元素调⽤函数处 理后的值。

map() ⽅法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进⾏检测。

注意: map() 不会改变原始数组。

语法    array.map(function(currentValue,index,arr), thisValue) 

返回值 返回⼀个新数组,数组中的元素为原始数组元素调⽤函数处理后的值。

返回⼀个数组,数组中元素为原始数组的平⽅根:

var numbers = [4, 9, 16, 25];
 var result = numbers.map(function (number) {
  return Math.sqrt(number)
 })
 console.log(result);//输出结果为:[ 2, 3, 4, 5 ]

 Array.prototype.forEach()

forEach() ⽅法⽤于调⽤数组的每个元素,并将元素传递给回调函数。

注意: forEach() 对于空数组是不会执⾏回调函数的。

语法 array.forEach(function(currentValue, index, arr), thisValue)

返回值 undefined

列出数组的每个元素:

var numbers = [4, 9, 16, 25];
 numbers.forEach(function (number, index) {
  console.log(index + ' -- ' + number);
 })
 // 0 -- 4
 // 1 -- 9
 // 2 -- 16
 // 3 -- 25

 

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值