【10bet】js查找和筛选的几种方式

来源:http://www.chinese-glasses.com 作者:Web前端 人气:96 发布时间:2020-03-14
摘要:注意: findIndex() 对于空数组,函数是不会执行的。 数组的方法 首先我们先打印一下Array.prototype看一下数组都有哪些方法 数组的静态方法 concat 1.定义和用法: concat()方法用于连接两个或多

注意:findIndex() 对于空数组,函数是不会执行的。

数组的方法

首先我们先打印一下Array.prototype看一下数组都有哪些方法

10bet 1

数组的静态方法

  • concat
    1.定义和用法:
    concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
    2.语法:arrayObject.concat(arrayX,arrayX,......,arrayX);
    arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
    3.返回值:返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

  • constructor
    Array原型对象的构造函数

  • copyWithin(es6新增)
    1.定义与用法:
    copyWithin() 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
    2.语法:array.copyWithin(target, start, end);
    参数:target(必需。复制到指定目标索引位置。); start(必需。元素复制的起始位置。);end(可选。停止复制的索引位置 (默认为 array.length))
    3.返回值:新的数组

  • entries(es6新增)
    对数值的键值对进行遍历(并不知道是什么意思)

  • every
    1.定义和用法:
    every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
    every() 方法使用指定函数检测数组中的所有元素:
    如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
    如果所有元素都满足条件,则返回 true。
    注意: every() 不会对空数组进行检测。
    注意: every() 不会改变原始数组。
    2.语法:array.every(function(currentValue,index,arr), thisValue)

    参数说明:

    10bet 2

    参数说明

3.返回值:布尔值,所有元素通过返回true,未通过返回false
  • fill
    1.定义和用法:
    fill() 方法用于将一个固定值替换数组的元素。
    2.语法:array.fill(value, start, end)
    参数说明:value(必需。填充的值。);start(可选。开始填充位置。);end(可选。停止填充位置 (默认为 array.length));

  • filter
    1.定义与用法:filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
    注意: filter() 不会对空数组进行检测。
    注意: filter() 不会改变原始数组。
    2.语法:array.filter(function(currentValue,index,arr), thisValue)
    参数说明

![](https://upload-images.jianshu.io/upload_images/8150822-7cd1f9e27a733690.png)

filter的参数说明



3.返回值:返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
  • find
    1.定义和用法
    find() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素。
    find() 方法为数组中的每个元素都调用一次函数执行:
    当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
    如果没有符合条件的元素返回 undefined
    注意: find() 对于空数组,函数是不会执行的。
    注意: find() 并没有改变数组的原始值。
    2.语法:array.find(function(currentValue, index, arr),thisValue)

    参数说明:

    10bet 3

    find方法参数说明

3.返回值:返回符合测试条件的第一个数组元素索引值,如果没有符合条件的则返回
undefined。
  • findIndex
    1.定义与方法:
    findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
    findIndex() 方法为数组中的每个元素都调用一次函数执行:
    当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
    如果没有符合条件的元素返回 -1
    注意: findIndex() 对于空数组,函数是不会执行的。
    注意: findIndex() 并没有改变数组的原始值。
    2.语法:array.findIndex(function(currentValue, index, arr), thisValue)

    参数说明

    10bet 4

    findindex参数说明

3.返回值:返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回
-1。
  • forEach
    1.定义与用法:forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
    注意: forEach() 对于空数组是不会执行回调函数的。
    2.语法:array.forEach(function(currentValue, index, arr), thisValue)

    参数说明:

    10bet 5

    forEach参数说明

  • includes
    1.定义与用法:
    includes() 方法用来判断一个数组是否包含一个指定的值,如果是,返回 true或 false。
    2.语法:arr.includes(searchElement, fromIndex)
    参数说明:searchElement(需要查找的元素值。);fromIndex(从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。)
    3.返回值:一个布尔值

  • indexOf
    1.定义与用法:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
    2.语法:arr.indexOf(searchElement[, fromIndex = 0])

    参数说明:

    10bet 6

    indexOf参数说明

3.返回值:若找到返回数组位置,未找到返回-1
  • join
    1.定义与用法:join() 方法用于把数组中的所有元素放入一个字符串。
    元素是通过指定的分隔符进行分隔的。
    2.语法:arrayObject.join(separator)
    参数说明:separator(可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。)

  • keys
    1.定义与用法:keys() 方法返回一个新的Array迭代器,它包含数组中每个索引的键。
    2.语法:arr.keys()
    3.返回值:一个新的array迭代器对象。

  • lastIndexOf
    1.定义与用法:lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
    2.语法:arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1])

    参数说明:

    10bet 7

    lastindexOf参数说明

  • map
    1.定义与方法:
    map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
    map() 方法按照原始数组元素顺序依次处理元素。
    注意: map() 不会对空数组进行检测。
    注意: map() 不会改变原始数组。
    2.语法:array.map(function(currentValue,index,arr), thisValue)
    参数说明:

    10bet 8

    map方法函数说明

3.返回值:修改之后的数组
  • pop
    1.定义与用法:pop() 方法用于删除数组的最后一个元素并返回删除的元素。
    注意:此方法改变数组的长度!
    提示:移除数组第一个元素,请使用shift()方法。
    2.语法:array.pop()
    3.返回值:删除的数组

  • push
    1.定义与方法:push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
    注意:新元素将添加在数组的末尾。
    注意:此方法改变数组的长度。
    提示:在数组起始位置添加元素请使用unshift()方法。
    2.语法:array.push(item1, item2, ..., itemX)
    参数说明:item要添加数组的元素
    3.返回值:数组的新长度

  • reduce
    1.定义与用法:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
    注意: reduce() 对于空数组是不会执行回调函数的。
    2.语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

    参数说明:

    10bet 9

    reduce的参数说明

3.返回值:计算的结果
  • reduceRight(与reduce的功能相同,不同的是从数组末尾向前将数组中的数组项做累加)

  • reverse(反转数组)

  • shift(删除并返回数组的第一个元素)
    1.定义与用法:shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
    注意:此方法改变数组的长度!
    提示:移除数组末尾的元素可以使用pop()方法。

  • slice(选取数组的一部分并返回一个新数组)
    1.定义与用法:
    slice() 方法可从已有的数组中返回选定的元素。
    slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
    注意: slice() 方法不会改变原始数组。
    2.语法:array.slice(start, end)

    参数说明:

    10bet 10

    slice参数说明.png

3.返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的
arrayObject 中的元素。
  • some(检测数组元素中是否有元素符合指定条件)
    1.定义与用法:some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
    some() 方法会依次执行数组的每个元素:
    如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
    如果没有满足条件的元素,则返回false。
    注意: some() 不会对空数组进行检测。
    注意: some() 不会改变原始数组。
    2.语法:array.some(function(currentValue,index,arr),thisValue)
    参数说明:

    10bet 11

    some的参数说明.png

3.返回值:如果有元素满足条件返回true,否则返回false
  • sort(对数组进行排序)
    1.定义与用法:sort() 方法用于对数组的元素进行排序。
    排序顺序可以是字母或数字,并按升序或降序。
    默认排序顺序为按字母升序。
    注意:当数字是按字母顺序排列时"40"将排在"5"前面。
    使用数字排序,你必须通过一个函数作为参数来调用。
    函数指定数字是按照升序还是降序排列。
    这些说起来可能很难理解,你可以通过本页底部实例进一步了解它。
    注意: 这种方法会改变原始数组!。
    2.语法:array.sort(sortfunction)
    参数说明:sortfunction(可选。规定排序顺序。必须是函数。)

  • splice
    1.定义与用法:splice() 方法用于插入、删除或替换数组的元素。
    注意:这种方法会改变原始数组!。
    2.语法:array.splice(index,howmany,item1,.....,itemX)
    参数说明:

    10bet 12

    splice参数说明.png

  • toLocaleString
    1.定义与用法:将数组转换为本地字符串
    2.语法:arrayObject.toLocaleString()
    3.返回值:字符串的本地字符串表示

  • toString
    1.定义与方法:返回一个字符串,表示指定数组及其元素

  • unshift
    1.定义与用法:
    unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
    注意:该方法将改变数组的数目。
    提示:将新项添加到数组末尾,请使用push()方法。
    2.语法:array.unshift(item1,item2, ..., itemX)
    参数说明:向数组起始位置添加一个或者多个元素
    3.返回值:返回新数组的长度

every() ;

注意:find() 对于空数组,函数是不会执行的。

JavaScript 循环

注释:indexOf() 方法对大小写敏感!

for (i = 0; i  5; i++) { text += "数字是 " + i + "br"; console.log(text); // 0,1,2,3,4}

时间: 2019-11-29阅读: 153find();

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

注意:find() 并没有改变数组的原始值。

let arr = [1,2,3];for(let i of arr){ console.log(i)}// 1// 2// 3
var str= "aaa456ac";console.log(arr.indexOf(‘b‘)); // -1 , 字符b第一次出现的位置,没有,返回-1;console.log(arr.indexOf(‘a‘)); // 0 , 字符a第一次出现的位置,是 0console.log(arr.indexOf(‘a‘, 3)); // 6, 从第四个字符位置开始往后继续查找,包含当前位置 console.log(arr.indexOf(‘ac‘, 3)); // 6, 字符串ac第一次出现的位置console.log(arr.lastIndexOf(‘a‘)); // 6, 字符串a最后出现的位置

当数组中的元素在测试条件时返回10bet,true时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1

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

findIndex() 方法为数组中的每个元素都调用一次函数执行:

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。(返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。)

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

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

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。

当数组中的元素在测试条件时返回true时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined

注释:如果要检索的字符串值没有出现,则该方法返回 -1。

some() 方法会依次执行数组的每个元素:

[3,10,18,19].findIndex((n) = n = 18)//返回符合条件的值的位置(索引)// 2array.findIndex(function(currentValue, index, arr),thisValue)currentValue : 必需。当前元素index:可选。当前元素的索引值arr: 可选。当前元素所属的数组对象thisValue: 可选。 传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值
[1,2,3,4,5,6].find((n) = n  5)//找出数组中第一个大于5 的成员// 6array.find(function(currentValue, index, arr),thisValue)currentValue : 必需。当前元素index:可选。当前元素的索引值arr: 可选。当前元素所属的数组对象thisValue: 可选。 传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值

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

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

可迭代(Iterable data)的数据结构,注意它的兼容性。

findIndex();

var arr = [1,2,3,4] ;arr.forEach(function(item,index, myarr){ console.log(item); // 1 // 2 // 3 // 4 // myarr: [1,2,3,4] });

for of 循环是 Es6 中新增的语句,用来替代 for in 和 forEach,它允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等

map();

var person = {fname:"Bill", lname:"Gates", age:62}; var text = "";for (var key in person) { text += person[key] + "-";}console.log(text); // Bill-Gates-62

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

array.some(function(currentValue,index,arr),thisValue)var arr = [1,2,3,4,5,6,7]var isHas = arr.some(item = item  5);console.log(isHas ); // truevar isHas2 = arr.some(item = item  7);console.log(isHas2 ); // false

本文由10bet发布于Web前端,转载请注明出处:【10bet】js查找和筛选的几种方式

关键词:

最火资讯