作用
  • 通过数组一次保存多条数据
定义
  • 通过字面量:var 数组名称 = []
  • 通过构造函数:var 数组名称 = new Array()
赋值
  • 定义数组的时候直接赋值:var 数组名称 = [值1, 值2, 值3...]
  • 通过索引赋值:数组名称[索引值] = 值
取值
  • 通过索引的方式进行取值:数组名称[索引值]
索引
  • 在数组中每一个值对应的那个编号 编号从 0 开始
  • 获取数组的长度:数组名称.length
冒泡排序
  • 升序:从小到大排列, 相邻两个值比较大小 如果第一个值大于第二个值, 则交换位置
  • 降序:从大到小排列, 相邻两个值比较大小 如果第一个值小于第二个值, 则交换位置
  • 数组中表示相邻的两值 (假设数组名称用ary表示,索引用变量i表示)
    • ary[i]:表示前一个值
    • ary[i + 1]:表示相邻的后一个值
常用方法
  • push():在数组的末尾添加一个或更多元素 (返回新的长度, 此方法改变数组的长度)
var arr = [3, 2]
console.log(arr.push(1, 'A')) // 4
  • pop():删除数组的最后一个元素 (返回删除的元素,此方法改变数组的长度)
var arr = [1, 2, 3]
console.log(arr.pop()) // 3
  • unshift():在数组的开头添加一个或更多元素 (返回新的长度, 此方法改变数组的长度)
var arr = [5, 6]
console.log(arr.unshift(4)) // 3
  • shift():删除数组的第一个元素 (返回删除的元素, 此方法改变数组的长度)
var arr = [8, 4, 2]
console.log(arr.shift()) // 8
  • reverse():反转数组中元素的顺序 (此方法改变原始数组)
var arr = [3, 'yt', 0, 5, 'fsdfds']
console.log(arr.reverse()) // ['fsdfds', 5, 0, 'yt', 3]
  • join():将数组转换为字符串 (此方法不会改变原始数组)
// array.join(separator):可选 要使用的分隔符,如果省略 则用逗号分割
var arr = ['张三', '李四', '王五']
console.log(arr.join()) // 张三,李四,王五
console.log(arr.join('|')) // 张三|李四|王五
  • concat():数组合并 (返回一个新数组,此方法不会更改现有数组)
var arr = [1, 2, 3]
var ary = [4, 5, 6]
console.log(arr.concat(ary)) // [1, 2, 3, 4, 5, 6]
  • indexOf():搜索一个指定的元素的位置 从数组的开始位置向后查找索引值
var arr = [10, 20, '30', 'dfdv']
console.log(arr.indexOf(10)) // 0      元素10的索引为 0
console.log(arr.indexOf(20)) // 1      元素20的索引为 1
console.log(arr.indexOf(30)) // -1     元素30没有找到,返回 -1
console.log(arr.indexOf('30')) // 2    元素'30'的索引为 2
  • lastIndexOf():从数组的结束位置向开始位置查找索引值
var arr = [10, 20, '30', 'dfdv']
console.log(arr.lastIndexOf(5)) // -1
  • filter():创建数组 (此方法不会改变原始数组)
var arr = [1, 2, 5, 6, 7, 9, 11, 16]
var r = arr.filter(function (x) {return x % 2 != 0
})
console.log(r) // [1, 5, 7, 9, 11]var arr = ['A', '', 'B', null, undefined, 'C', '  ']
var r = arr.filter(function (s) {return s && s.trim()
})
console.log(r) // ['A', 'B', 'C']
  • forEach():数组循环遍历
var arr = ['A', 'B', 'C']
arr.forEach(function (element, index, array) {// elememt: 当前元素的值// index: 当前元素的索引// array: array对象本身console.log(element) // 'A' 'B' 'C'console.log(index) // 0 1 2console.log(array) // ['A', 'B', 'C']
})
  • some():检测数组中的元素是否满足指定条件 (此方法不会改变原始数组)
 <p id="demo"></p><script>
const ages = [3, 10, 18, 20]
document.getElementById('demo').innerHTML = ages.some(checkAdult)
function checkAdult(age) {return age >= 18
}
</script>
  • map():数组循环
var a = ['A', 'B', 'C']
var s = new Set(['A', 'B', 'C'])
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']])
for (var x of a) { // 遍历Array   console.log(x)
}
for (var x of s) { // 遍历Set   console.log(x)
}
for (var x of m) { // 遍历Map   console.log(x[0] + '=' + x[1])
}
  • sort():数组排序 (此方法会改变原始数组)
var arr = ['B', 'A', 'C']
console.log(arr.sort()) // ['A', 'B', 'C']
  • slice():数组截取
var arr = [1, 3, 4, 'A', 'B']
console.log(arr.slice(0, 3)) // [1, 3, 4] 从索引0开始 到索引3结束 但不包括索引3
console.log(arr.slice(3)) // ['A', 'B'] // 从索引3开始到结束
console.log(arr.slice()) // [1, 3, 4, 'A', 'B'] // 从头到尾截取所有元素
  • splice():删除元素,并向数组中添加新的元素 (此方法会改变原始数组)
var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle']
// 从索引2开始删除3个元素,然后再添加两个元素
console.log(arr.splice(2, 3, 'Goole', 'Facebook')) // ['Yahoo', 'AOL', 'Excite']
console.log(arr) // ['Microsoft', 'Apple', 'Goole', 'Facebook', 'Oracle']
console.log(arr.splice(2, 2)) // ['Goole', 'Facebook'] 只删除不添加
console.log(arr) // ['Microsoft', 'Apple', 'Oracle']
console.log(arr.splice(2, 0, 'IE')) // [] (因为没有删除任何元素) 只添加不删除
console.log(arr) // ['Microsoft', 'Apple', 'IE', 'Oracle']

数组基础知识 (一)相关推荐

  1. 动态数组怎么定义_Excel VBA 数组基础知识,初学者不可不学的关键知识

    今天和大家要说的是VBA数组的基本知识点,等你学到后面就会知道,数组和字典搭配起来真的是事半功倍的啦!所以学习好数组的基本知识点也是必不可少的,基础知识有了,才能有后面的应用. 数组的基本概念 数组其 ...

  2. c语言多维数组基础知识,C语言基础第7章多维数组.ppt

    C语言基础第7章多维数组 7.2 二维数组及多维数组二维数组的定义定义方式: 数据类型 数组名[常量表达式][常量表达式]:;二维数组理解;二维数组元素的引用形式: 数组名[下标][下标]二维数组元素 ...

  3. php数组基础知识,PHP 数组基础知识小结

    php函数有很多,需要时查询api. /* #数组 没有限制大小:$arr[0]=1;$arr[1]=2; $arr=array("0","1");$list( ...

  4. 【你不能错过的数组基础知识整理】(学习笔记9--数组下)

    目录 一.二维数组 1.二维数组的定义 2.二维数组的初始化 3.二维数组元素的访问 4.二维数组作为函数参数 5.数组的数组 二.数组应用实例 1.数组排序 2.转置矩阵 前言 新星计划第三篇博文, ...

  5. JAVA总裁--Java数组基础知识

    1.数组的定义: 数组是由一组类型相同的数据元素构成的有序集合,每个数据元素称为一个数组元素(简称为元素),每个元素受n(n≥1)个线性关系的约束,每个元素在n个线性关系中的序号i1.i2.-.in称 ...

  6. java数组基础知识巩固

    一.数组练习: 1.使用两种方式定义一个整形的一维数组,获取数组中的值,为数组中的元素赋值,遍历一维数组 代码: class SingleDimensionArray {public static v ...

  7. Matlab 结构体数组 基础知识 struct(自学文档)

    struct 结构体数组 全页展开 说明 结构体数组是使用名为字段的数据容器将相关数据组合在一起的数据类型.每个字段都可以包含任意类型的数据.可以使用 structName.fieldName 格式的 ...

  8. C++:C++语言入门级基础知识考察点回顾之数组、指针

    C++:C++语言入门级基础知识考察点回顾之数组.指针 目录 C++的数组.字符串 1.数组 1.1.声明数组 1.2.一维数组的应

  9. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...

    今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  10. Java基础知识(五) 字符串与数组

    Java基础知识 字符串与数组 1. 字符串的创建与存储的机制是什么 2. "==".equals和hashCode有什么区别 3. String.StringBuffer.Str ...

最新文章

  1. centos7+ docker1.12 实践部署docker及配置direct_lvm
  2. 打印杨辉三角形知识点_用编程方法打印杨辉三角形
  3. 《C++ Primer》7.2.1节练习
  4. Linux下的磁盘空间管理
  5. Eclipse 插件开发遇到问题心得总结
  6. 【快讯】呼伦贝尔市人民医院利用Oracle APEX快速开发预检分诊系统
  7. phpStudy下载安装+配置站点+You don't have permission to access / on this server错误解决
  8. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...
  9. Maven使用技巧001--- 离线更新nexus中央仓库索引的方案
  10. 调试裕泰微yt8521s的phy芯片流程记录
  11. 17. Store newed objects in smart pointers in standalone statements
  12. PPAPI 插件编写
  13. Java实现蓝桥杯 垒骰子---dp动态规划+矩阵快速幂
  14. 使用HDMI转DVI线组双屏
  15. python 批量修改图片尺寸
  16. nginx+php 完成 kod云搭建(ansible使用变量)
  17. IDEA学习篇——finds duplicated code提示
  18. java全能速查宝典_Java全能速查宝典_IT教程网
  19. Windows如何安装WSL(中途退出后遇到bug该怎么办)
  20. 第一台电子计算机教授领导,第一台电子计算机

热门文章

  1. 【css】svg修改图标颜色
  2. 10个问题说清楚 什么是元宇宙 - 十问元宇宙:如何将抽象的概念具象化?
  3. 【Web Design The Missing Link】Handing Error
  4. Word Embedding与Word2Vec
  5. win10系统安装和优化
  6. 使用pynput监听键盘组合键
  7. Ubuntu和本机之间复制粘贴
  8. PTA:运算符重载(最简分数,c++)
  9. vue -lic 搭建vue项目
  10. VMware vCenter/vSphere/vSan/Esxi/7.0 lic许可