zoukankan      html  css  js  c++  java
  • javascript的数组方法

    1.数组首尾添加/移除数组元素:

    arr.push(...items) —— 从尾端添加元素

    arr.pop() —— 从尾端提取元素

    arr.shift() —— 从首端提取元素

    arr.unshift(...items) —— 从首端添加元素

    arr.splice(start[, deleteCount, elem1, ..., elemN])  ——可以实现添加,删除,修改数组

    它从索引 start 开始修改 arr:删除 deleteCount 个元素并在当前位置插入 elem1, ..., elemN。最后返回已被删除元素的数组

    将 deleteCount 设置为 0splice 方法就能够插入元素而不用删除任何元素,负向索引都是被允许的。它们从数组末尾计算位置

    arr.slice([start], [end])  ——它会返回一个新数组,将所有从索引 start 到 end(不包括 end)的数组项复制到一个新的数组。start 和 end 都可以是负数,在这种情况下,从末尾计算索引

    arr.concat(arg1, arg2...)  —— arr.concat 创建一个新数组,其中包含来自于其他数组和其他项的值,如果参数 argN 是一个数组,那么其中的所有元素都会被复制。否则,将复制参数本身。

    • arr.indexOf(item, from) 从索引 from 开始搜索 item,如果找到则返回索引,否则返回 -1
    • arr.lastIndexOf(item, from) —— 和上面相同,只是从右向左搜索。
    • arr.includes(item, from) —— 从索引 from 开始搜索 item,如果找到则返回 true(译注:如果没找到,则返回 false)。
    arr.forEach(function(item, index, array) {
      // ... do something with item
    });
    arr.forEach 方法允许为数组的每个元素都运行一个函数。
    
    
    let result = arr.find(function(item, index, array) {
      // 如果返回 true,则返回 item 并停止迭代
      // 对于假值(falsy)的情况,则返回 undefined
    });

    arr.findIndex 方法(与 arr.find 方法)基本上是一样的,但它返回找到元素的索引,而不是元素本身。并且在未找到任何内容时返回 -1

    let results = arr.filter(function(item, index, array) {
      // 如果 true item 被 push 到 results,迭代继续
      // 如果什么都没找到,则返回空数组
    });

    与 find 大致相同,但是 filter 返回的是所有匹配元素组成的数组

    let result = arr.map(function(item, index, array) {
      // 返回新值而不是当前元素
    })

    arr.sort 方法对数组进行 原位(in-place) 排序,更改元素的顺序。(译注:原位是指在此数组内,而非生成一个新数组。)

    实现排序
    arr.sort(function(a, b) { return a - b; });

    str.split(delim) 它通过给定的分隔符 delim 将字符串分割成一个数组

    let names = 'Bilbo, Gandalf, Nazgul';
    
    let arr = names.split(', ');
    
    for (let name of arr) {
      alert( `A message to ${name}.` ); // A message to Bilbo(和其他名字)
    }
    split 方法有一个可选的第二个数字参数 —— 对数组长度的限制。如果提供了,那么额外的元素会被忽略。

    arr.join(glue)与 split 相反。它会在它们之间创建一串由 glue 粘合的 arr 项。

    let arr = ['Bilbo', 'Gandalf', 'Nazgul'];
    
    let str = arr.join(';'); // 使用分号 ; 将数组粘合成字符串
    
    alert( str ); // Bilbo;Gandalf;Nazgul

    arr.reduce 方法和 arr.reduceRight 方法和上面的种类差不多,但稍微复杂一点。它们用于根据数组计算单个值
    let value = arr.reduce(function(accumulator, item, index, array) {
      // ...
    }, [initial]);
    • accumulator —— 是上一个函数调用的结果,第一次等于 initial(如果提供了 initial 的话)。
    • item —— 当前的数组元素。
    • index —— 当前索引。
    • arr —— 数组本身。
    • arr.reduceRight 和 arr.reduce 方法的功能一样,只是遍历为从右到左

    Array.isArray(value)如果 value 是一个数组,则返回 true;否则返回 false

    总结:

    • 添加/删除元素:

      • push(...items) —— 向尾端添加元素,
      • pop() —— 从尾端提取一个元素,
      • shift() —— 从首端提取一个元素,
      • unshift(...items) —— 向首端添加元素,
      • splice(pos, deleteCount, ...items) —— 从 pos 开始删除 deleteCount 个元素,并插入 items
      • slice(start, end) —— 创建一个新数组,将从索引 start 到索引 end(但不包括 end)的元素复制进去。
      • concat(...items) —— 返回一个新数组:复制当前数组的所有元素,并向其中添加 items。如果 items 中的任意一项是一个数组,那么就取其元素。
    • 搜索元素:

      • indexOf/lastIndexOf(item, pos) —— 从索引 pos 开始搜索 item,搜索到则返回该项的索引,否则返回 -1
      • includes(value) —— 如果数组有 value,则返回 true,否则返回 false
      • find/filter(func) —— 通过 func 过滤元素,返回使 func 返回 true 的第一个值/所有值。
      • findIndex 和 find 类似,但返回索引而不是值。
    • 遍历元素:

      • forEach(func) —— 对每个元素都调用 func,不返回任何内容。
    • 转换数组:

      • map(func) —— 根据对每个元素调用 func 的结果创建一个新数组。
      • sort(func) —— 对数组进行原位(in-place)排序,然后返回它。
      • reverse() —— 原位(in-place)反转数组,然后返回它。
      • split/join —— 将字符串转换为数组并返回。
      • reduce/reduceRight(func, initial) —— 通过对每个元素调用 func 计算数组上的单个值,并在调用之间传递中间结果。
    • 其他:

      • Array.isArray(arr) 检查 arr 是否是一个数组。
  • 相关阅读:
    Firemonkey绑定对象列表
    Firemonkey 自定义Button的Style
    Delphi中使用GDI+进行绘图(2)
    Delphi中使用GDI+进行绘图(1)
    很好用的一个类:TJvAppXMLFileStorage
    我的Win32开发抉择,Delphi老将复出
    实现动态的XML文件读写操作
    一个简单的统计图像主颜色的算法(C#源代码)
    开始使用THREE.JS
    C++应用程序在Windows下的编译、链接(一)概述
  • 原文地址:https://www.cnblogs.com/bzqs/p/15183698.html
Copyright © 2011-2022 走看看