本文主要是介绍javascript-MDN学习笔记-Array部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
创建一个数组
var fruits = ["Apple", "Banana"];console.log(fruits.length);
// 2
通过索引访问数组元素
var first = fruits[0];
// Applevar last = fruits[fruits.length - 1];
// Banana
遍历一个数组
fruits.forEach(function (item, index, array) {console.log(item, index);
});
// Apple 0
// Banana 1
添加元素到数组的末尾
var newLength = fruits.push("Orange");
// ["Apple", "Banana", "Orange"]
删除数组末尾的元素
var last = fruits.pop(); // remove Orange (from the end)
// ["Apple", "Banana"];
删除数组最前面(头部)的元素
var first = fruits.shift(); // remove Apple from the front
// ["Banana"];
添加到数组的前面(头部)
var newLength = fruits.unshift("Strawberry") // add to the front
// ["Strawberry", "Banana"];
添加到数组的后边 (尾部)
fruits.push("Mango");
// ["Strawberry", "Banana", "Mango"]
找到某个元素在数组中的索引
var pos = fruits.indexOf("Banana");
// 1
通过索引删除某个元素
var removedItem = fruits.splice(pos, 1); // this is how to remove an item
// ["Strawberry", "Mango"]
复制一个数组
var shallowCopy = fruits.slice(); // this is how to make a copy
// ["Strawberry", "Mango"]
----------------------------------------------------------------------------------------------------------------------------------------
var years = [1950, 1960, 1970, 1980, 1990, 2000, 2010];
years['2'] 可以代替 years[2],不过这不是必需的。
在 years[2] 中,2会被Javascript 引擎自动调用 toString 转换成一个 string 类型的变量。
正因为如此,'2' 和 '02' 在years 对象中将会指向不同的位置。但是2和02是一样的。
console.log(years['2'] != years['02']);返回true
console.log(years[2]==years[02]);返回true
补充:
1、JavaScript 中数字开头的属性不能跟在点号后面renderer['3d'].setTexture(model, 'character.png');
2、想要使用保留字作为对象的属性名称的,只能通过以单引号包裹其字符串的形式访问
var promise = {'var' : 'text','array': [1, 2, 3, 4]
};
----------------------------------------------------------------------------------------------------------------------------------------
Mutator 方法
下面的这些方法会改变调用它们的对象自身的值:(9个)
- 在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。
- 将数组中指定区间的所有元素的值,都替换成某个固定的值。
- 删除数组的最后一个元素,并 返回这个元素。
- 在数组的末尾增加一个或多个元素,并 返回数组的新长度。
- 颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。
- 删除数组的第一个元素,并 返回这个元素。
- 对数组元素进行排序,并 返回当前数组。
- 在任意的位置给数组添加或删除任意个元素。
- 在数组的开头增加一个或多个元素,并 返回数组的新长度。
- 返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
- 判断当前数组是否包含某指定的值,如果是返回
true
,否则返回false
。 - 连接所有数组元素组成一个字符串。
- 抽取当前数组中的一段元素组合成一个新数组。
- 返回一个表示当前数组字面量的字符串。遮蔽了原型链上的
Object.prototype.toSource()
方法。 - 返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的
Object.prototype.toString()
方法。 - 返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的
Object.prototype.toLocaleString()
方法。 - 返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
- 返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
- 为数组中的每个元素执行一次回调函数。
- 返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。
- 如果数组中的每个元素都满足测试函数,则 返回
true
,否则返回false。
- 如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
- 将所有在过滤函数中 返回
true
的数组元素放进一个新数组中并返回。 - 找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回
undefined
。 - 找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回
-1
。 - 返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。
- 返回一个由回调函数的返回值组成的新数组。
- 从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
- 从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
- 返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。
- 和上面的
values() 方法是同一个函数。
Array.prototype.copyWithin()
Array.prototype.fill()
Array.prototype.pop()
Array.prototype.push()
Array.prototype.reverse()
Array.prototype.shift()
Array.prototype.sort()
Array.prototype.splice():三个参数,第一个指定起始位置,第二个指定删除个数(0即不删除),第三个参数既要添加的数组
Array.prototype.unshift()
Accessor 方法(9个)
下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值。
Array.prototype.concat()
Array.prototype.includes()
Array.prototype.join()
Array.prototype.slice()
Array.prototype.toSource()
Array.prototype.toString()
Array.prototype.toLocaleString()
Array.prototype.indexOf()
Array.prototype.lastIndexOf()
Iteration 方法
在下面的众多遍历方法中,有很多方法都需要指定一个回调函数作为参数。在回调函数执行之前,数组的长度会被缓存在某个地方,所以,如果你在回调函数中为当前数组添加了新的元素,那么那些新添加的元素是不会被遍历到的。此外,如果在回调函数中对当前数组进行了其它修改,比如改变某个元素的值或者删掉某个元素,那么随后的遍历操作可能会受到未预期的影响。总之,不要尝试在遍历过程中对原数组进行任何修改,虽然规范对这样的操作进行了详细的定义,但为了可读性和可维护性,请不要这样做。
Array.prototype.forEach():返回undefined
Array.prototype.entries()
Array.prototype.every()
Array.prototype.some()
Array.prototype.filter()
Array.prototype.find()
Array.prototype.findIndex()
Array.prototype.keys()
Array.prototype.map():
注意,如果此数组的元素不满足回调函数,则新函数此位置为undefined!!!!
Array.prototype.reduce()
Array.prototype.reduceRight()
Array.prototype.values()
Array.prototype[@@iterator]()
----------------------------------------------------------------------------------------------------------------------------------------
Array.prototype
所有的数组
实例都继承于 Array.prototype
。Array.prototype
本身也是个数组。 属性
- 所有的数组实例都继承了这个属性,它的值就是
Array
,表明了所有的数组都是由Array
构造出来的。 - 上面说了,因为
Array.prototype
也是个数组,所以它也有length
属性,这个值为0
,因为它是个空数组。
Array.prototype.constructor
Array.prototype.length
Array.length
length
属性的值来截短一个数组,但不能通过增大 length
属性的值来延长这个数组
这篇关于javascript-MDN学习笔记-Array部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!