网站首页 > 技术文章 正文
Array
是一个用来构造数组的全局对象,它是一个高阶的类似有序列表的对象。
a、讲述基础之前,大家想一下怎么样遍历一个数组,既优雅有快速?
答案是:如果循环终止条件不需要进行比较运算,那么循环的速度还可以更快↓
把数组下标改成向 0 递减,循环终止条件只需要判断 i 是否为 0 就行了。因为循环增量和循环终止条件结合在一起,所以可以写成更简单的 while 循环:
// 最快且优雅的代码
var array = [0,1,2,3,4,5,6,7,8,9];
// while 循环var i = array.length;
while (i--) {
fn( array [ i ] );
}
接下来是Array对象的基础知识汇总:
1、数组表示:
var a = new Array(3);
var a = Array(3);
var a = [1,2,3];
2、以下这种表示在不同浏览器下,数组中元素个数不一:
var a = [,,];
在 IE 中 a数组的长度为3;
在其他浏览器中 a数组的长度为2.
3、数组的 length 属性有个特点:这个属性不是只读的,可以设置此属性,从而从末尾移除或向数组添加元素。
var num =[1,2,3];
alert(num.length); // 3
alert(num[2]) // 3
num.length =2;
alert(num[2]) // undefined
4、检测数组:
① value instanceOf Array 。
var a =[1,2,3,4];
a = > [1,2,3,4];
typeof a = > "object"
a instanceOf Array => true
② Array.isArray(value) => Boolean
5、转换方法:
所有的对象都具有toLocaleString()/toString()/valueOf() 方法。
toString() 方法 作用于数组对象之后,会返回数组中每个元素以字符串形式而成的一个以逗号分隔的字符串
例如:
var colors = ["red", "yellow", "green", "white",];
colors.toString() = "red,yellow,green,white";
6、通过索引访问数组元素:
var first = fruits[0]; // Apple
var last = fruits[fruits.length - 1]; // Banana
7、遍历一个数组:
fruits.forEach(function (item, index, array) {
console.log(item, index);
});
// Apple 0 // Banana 1
精析:
语法:array.forEach(callback[, thisArg])
参数:
callback:在数组每一项上执行的函数,接收三个参数:
currentValue
当前项(指遍历时正在被处理那个数组项)的值。
index
当前项的索引(或下标)。
array
数组本身。
thisArg
可选参数。用来当作callback 函数内this的值的对象。
8、添加元素到数组的末尾:
var newFruit = fruit.push("Orange");
9、删除数组末尾的元素:
var last = fruits.pop();
// remove Orange (from the end)
// ["Apple", "Banana"];
10、删除数组前面的元素:
var first = fruits.shift();
// remove Apple from the front
// ["Banana"];
11、添加到数组的前面:
var newLength = fruits.unshift("Strawberry")
// add to the front
// ["Strawberry", "Banana"];
12、找到某个元素在数组中的索引:
fruits.push("Mango");
// ["Strawberry", "Banana", "Mango"]
var pos = fruits.indexOf("Banana");
// 1
13、通过索引删除某个元素:
var removedItem = fruits.splice(pos, 1);
// this is how to remove an item
// ["Strawberry", "Mango"]
14、复制一个数组:
var shallowCopy = fruits.slice();
// this is how to make a copy
// ["Strawberry", "Mango"]
重点注意:创建的是当前数组的一个副本,通过传参返回新构建的数组!
索引值:index => 从0开始,最后一个为length -1 ;
15、属性:length
16、方法:好多....
至此,数组基础完毕,剩下的就是不断地练习和掌握,毕竟数组的方法很多很多,看好语法API 多多训练,就能驾驭数组。
- 上一篇: 还不懂JS数组排序?看懂这篇就够了(附代码)
- 下一篇: 如何用 JS 实现各种数组排序?
猜你喜欢
- 2025-01-13 【JS 数组分类】多场景实现数组分类
- 2025-01-13 JavaScript数组之map、filter、reduce使用详解
- 2025-01-13 帮你精通JS:解析与盘点数组array的5类22种方法
- 2025-01-13 JS几种数组遍历方式以及性能分析对比
- 2025-01-13 JS数组过滤元素的方法
- 2025-01-13 js中的数组拷贝(浅拷贝,深拷贝)
- 2025-01-13 js常用数组API方法汇总
- 2025-01-13 JS怎么实现有序数组合并?
- 2025-01-13 JavaScript数组剖析
- 2025-01-13 JavaScript重构技巧—数组,类名和条件
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)