JavaScript随笔——Array对象

array.sort()   对数组的元素进行排列,并返回数组。

默认排序顺序是字符串的Unicode码,所以可以把数组元素都化成字符串(如有必要)。

语法:array.sort( sortby );

参数sortby,可选,必须是函数,用来规定排序的顺序

① 按字母顺序排序。

 

 ② 还是按照字母顺序排序

 没有得到要得到的结果。此时就需要提供比较函数了。该函数比较两个值的大小,然后返回一个数字,用来说明这两个值的相对顺序。

比较函数应该具有两个参数a和b,返回值如下:

若a小于b, 即 a - b小于零,返回一个小于零的值,数组将按照升序排列。

若a等于b,返回 0。

若a大于b, 即a - b大于零,返回一个大于零的值,数组将按照降序排列。

 

③ 升序排列

 

④ 降序排列

小例子:

将数组按数组的第二项的值排列。

   

 

 ⑤ 按照数组对象中某个属性进行排序

 

 ⑥根据参数确定升序还是降序


 push()     向数组的末尾添加一个或多个元素,并返回新长度

语法:array.push(item1item2, ..., itemX)

item1, item2, ..., itemX    必需,要添加到数组里的元素。

从末尾添加。

例子1:

 

例子2:添加的形式不局限于单个元素。可以添加数组形式,对应到新数组里元素也是数组。

[ strCity, num ] 在新数组中也是数组形式。

strCity是”北京"  num是90时  


 splice()    用于添加或删除数组中的元素。(会改变原数组)

语法:array.splice(index,howmany,item1,.....,itemX)

index  必需,规定 从何处添加或删除元素,是 元素的下标,必须是数字。

howmany  可选,规定 删除多少元素。必须是数字,但可以是零。若未规定,删除从index开始到数组结尾所有。

item1,.....,itemX  可选,要添加到数组的新元素。

返回值:


 

some()  检测数组中的元素是否满足指定条件(函数提供)

 语法: array.somefunction currentValueindexarr ), thisValue )

function(currentValue, index,arr)    必须。函数,数组中的每个元素都会执行这个函数。
             currentValue   必须。当前元素的值。   index  可选。当前元素的索引值。      arr   可选。当前元素属于的数组对象

thisValue    可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"

返回值:

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

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

      ②如果没有满足条件的元素,则返回false。

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

例子:


 findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

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

 function(currentValue, index,arr)     必须。数组每个元素需要执行的函数。
                  currentValue    必需,当前元素。      index    可选,当前元素的索引      arr  可选,当前元素所属的数组对象

thisValue   可选。 传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值

返回值:

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

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

       ②    如果没有符合条件的元素返回 -1

注意:findIndex() 对于空数组,函数是不会执行的。  findIndex() 并没有改变数组的原始值。

例子:


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

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

function(currentValue, index, arr)   必需。 数组中每个元素需要调用的函数。

         currentValue   必需,当前元素。     index    可选,当前元素的索引值。     arr   可选,当前元素所属的数组对象。

thisValue   可选。传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值

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

例子:


indexOf()    返回某个指定的字符串值在字符串中首次出现的位置。找不到 返回 -1

语法:string.indexOf(searchvalue,start)

searchvalue   必需,规定需检索的字符串值

start   可选的整数参数,规定在字符串中开始检索的位置。若省略即 从头开始。

返回值: 返回字符串第一次出现的位置。若没找到匹配的字符串则返回 -1.

例子:

特别注意:

①  当 searchvalue 是空字符串会产生奇怪的结果。如果没有起始值值或 起始值低于字符串长度,则返回的值与起始值值相同:

②  但是,如果任何 起始值 等于或大于字符串的长度,则返回的值就是字符串的长度:


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

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

function(currentValue, index, arr)   必需。 数组中每个元素需要调用的函数。

         currentValue   必需,当前元素。     index    可选,当前元素的索引值。     arr   可选,当前元素所属的数组对象。

thisValue   可选。传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值

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

例子:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

 

 

 

 

 

 

 

 

  

 

posted @ 2020-08-07 11:04  oilweng  阅读(92)  评论(0)    收藏  举报