- 存储元素的线性集合
- 在 js 中是一个特殊的对象,包含在 Array 基本数据类型中,索引作为其属性
- 创建数组
- 读写数组
- 数组的常用操作
- 修改器方法:会改变数组本身
pop、push、shift、unshift、splice、reverse、sort
- 访问方法:不会改变数组本身,会返回一个新的数组
concat、inlcudes、join、slice、toString、indexOf、lastIndexOf
- 迭代方法:会遍历数组
forEach、entries、every、filter、find、findIndex、keys、map、reduce
- 修改器方法:会改变数组本身
- 二维数组与多维数组
- 创建一个二维数组
var board = [["R", "N", "B", "Q", "K", "B", "N", "R"], ["P", "P", "P", "P", "P", "P", "P", "P"], [" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "], ["p", "p", "p", "p", "p", "p", "p", "p"], ["r", "n", "b", "q", "k", "b", "n", "r"]]; console.log(board.join("\n") + "\n\n"); board[4][4] = board[6][4]; board[6][4] = ""; console.log(board.join("\n"));
- 用数组将一组值用表格显示
var values = []; for (var x = 0; x < 10; x++) { values.push([2 ** x, 2 * x ** 2]); } console.table(values);
- 创建一个二维数组
- 创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个现实学生平均成绩的方法
var grade = {};
grade.store = [];
grade.push = function(number) {
this.store.push(number);
};
grade.average = function() {
var store = this.store;
var result = store.reduce(function(a, b) {
return a + b;
});
return result / store.length;
};
grade.push(77);
grade.push(20);
grade.push(66);
console.log(grade.average());
- 将一组单词存储在一个数组中,并安正序和倒叙分别显示这些单词
var word = "hello".split("");
word.reverse();
word.sort(function(a, b) {
return b - a;
});
console.log(word);
- 修改下面的方法,使它可以使用一个二维数组来存储每月的有用数据,增加一些方法用来显示月平均数,具体某一平均数和所有周的平均数
var WeekTemps = function(data) {
this.store = data;
this.add = add;
this.a1 = a1;
this.a2 = a2;
this.a3 = a3;
};
var add = function(index, number) {
this.store[index - 1].push(number);
};
// 月平均数
var a1 = function() {
var store = this.store;
var count = 0;
var result = 0;
for (var i = 0; i < store.length; i++) {
for (var j = 0; j < store[i].length; j++) {
count++;
result += store[i][j];
}
}
console.log(result / count);
};
// 一周的平均数
var a2 = function() {
var store = this.store;
for (var i = 0; i < store.length; i++) {
var result = 0;
result = store[i].reduce(function(a, b) {
return a + b;
});
console.log(result / store[i].length);
}
};
// 所有周的平均数
var a3 = function() {
var store = this.store;
var count = 0;
var week = 0;
for (var i = 0; i < store.length; i++) {
count++;
var result = 0;
result = store[i].reduce(function(a, b) {
return a + b;
});
week += result / store[i].length;
}
console.log(week / count);
};
var _data = [];
var random = function(min, max) {
return parseInt(min + Math.random() * (max + 1 - min));
};
for (var i = 0; i < 5; i++) {
_data[i] = [];
}
var run = new WeekTemps(_data);
for (var j = 1; j < 6; j++) {
for (var k = 0; k < 7; k++) {
run.add(j, random(10, 50));
}
}
console.log("月平均数");
run.a1();
console.log("一周平均数");
run.a2();
console.log("所有周平均数");
run.a3();
- 创建一个对象,将字母存储在一个数组中,并且用一个方法可以将字母连在一起,显示成一个单词
var fill = {
store: [],
push: function(a) {
this.store.push(a);
}
};
fill.push("w");
fill.push("o");
fill.push("r");
fill.push("d");
console.log(fill.store.join(""));