感觉有点问题,最近好像停止学习了。所以还是继续看书吧,老是想写出个什么来,却总没写出来。
几乎所有的编程语言都支持数组类型,因为数组是最简单的内存数据存储结构,数组可以存储一种数据类型的值。但是在JavaScript中,也可以存储不同的数据类型,但建议不要这么做。
假如有这样一个需求:保存所在城市内每个月的平均温度。这样写:
var averageTempJan = 31.9;
var averageTempFeb = 35.3;
var averageTempMar = 42.4;
var averageTempApr = 52.4;
var averageTempMay = 62.4;
真的不要太麻烦。
var averageTemp = [31.9, 35.3, 42.4, 52.4, 62.4];
这样是不是简单多了。
JavaScript声明数组非常简单
var dayOfWeek = new Array(15) // arr.length ===15
var dayOfWeek = new Array(1,2,3,4,5) // arr.length ===15
var arr = new Array(1,2,3,4,5)
console.log(arr);
unshift:在首位插入数据 shift:在首位删除数据 push:在末尾插入数据 pop:在末尾移除数据 splice:任意位置删除+添加数组 splice(3,2),在第三个位置删除后两个数据 concat:连接2个或者更多个数组,并返回结果 every:对每一项都返回true,则为true。 filter:对数组给定函数,过滤,,,,内部函数一般都接受3个参数,第一个是循环的数组,第二个是index,第三个是循环的数组本身。 forEach:对数组中每一项都运行,不返回任何值。 join:将所有字符串拼接成字符串 indexOf:返回某个数组索引,没有就返回-1 lastIndexOf:倒叙返回,如此对比上一个indexOf map:相比于forEach,会返回一个值。 reverse:倒序。 slice:剪切 some:对于数组中每一项运行给定函数,如果任意一项返回为true,则true。 sort:对数组排序 toString: 转化成字符串并且返回。 valueOf:类似toString,将数组作为字符串返回。
var a = [[1,2,3],[4,5,6],[7,8,9]];
@@iterator,返回一个包含数组键值对的迭代器对象,可以通过同步调用得到数组元素的键值对。 copyWithin:复制数组中一系列元素到同一个数组指定的起始位置。 entires:返回包含数组所有键值对的@@iterator includes:如果数组中存在某个元素,存在返回true,不存在返回false find:存在返回该对象 findIndex:存在返回该对象索引 fill:填充数组 keys:返回数组所有索引的@@iterator of:根据传入参数创建一个新数组 values:返回数组中所有值的@@iterator 除了上述还有for...of循环,返回迭代器对象
let arr = [1,2,4,5,6,6,7,89,9]
let itera = arr[Symbol.iterator]();
console.log(itera.next()) // 1
console.log(itera.next()) // 2
console.log(itera.next()) // 4
console.log(itera.next()) // 5
...
#### 关于entires,keys,values方法的迭代器
```js
let arr = [1,2,4,5,6,6,7,89,9]
let itera = arr.entries();
console.log(itera.next().value) // [0,1] [索引,值]
console.log(itera.next().value) // [1,2]
console.log(itera.next().value) // [2,4]
console.log(itera.next().value) // [3,5]
...
同样道理,keys返回键值有迭代器,values返回值的数字,并且自带迭代器,不在不再熬述。