为什么会有这种类型?
因为好组织。
举个栗子:
var 同学1 = '王花花';
var 科目1 = '传呼机打蜡指南';
var 同学2 = '李拴蛋';
var 科目2 = '上网冲浪必修';
var 同学3 = '刘备备';
var 科目3 = '网络词汇必修';
var 同学 = [
'王花花',
'李拴蛋',
'刘备备',
];
var 科目 = [
'传呼机打蜡指南',
'上网冲浪必修',
'网络词汇必修',
];
哪一种更清楚?
一目了然。
语法
定义数组
首先是中括号(方括号)
[]
里面的每一项叫元素 (element)
[2, 4, 6]
元素类型不限
[
2,
true,
'a',
{},
function() {}
]
还能嵌套
[ 1, ['a', 'b', 'c']]
[[[[[[[[['yo']]]]]]]]] // 就是有这种操作
获取元素
每一个元素都有一个用于定位的索引 (index;也就是元素的身份证号,从0开始)
var 排排坐 = [
'a', // 0 程序员是从0开始数的
'b', // 1
'c', // 2
'd', // 3
// ...
];
知道索引就能获取元素
// 一维数组
var 排排坐 = ['a', 'b', 'c'];
排排坐[0] // 'a'
排排坐[1] // 'b'
排排坐[2] // 'c'
// 多维数组
var 各种排排坐 = [['a1', 'a2'], ['b1', 'b2'], ['c1', ['c2']]];
各种排排坐[0][0] // 'a1'
各种排排坐[1][0] // 'b1'
各种排排坐[2][0] // 'c1'
各种排排坐[0][1] // 'a2'
各种排排坐[1][1] // 'b2'
各种排排坐[2][1][0] // 'c2'
通过.length
获取数组的长度(里面有几个元素)
[5, 10, 15].length // 3
常用方法
.push(新元素)
从末尾添加
var arr = [3, 4, 5];
arr.push(6); // 4 返回修改后的长度
console.log(arr); // [3, 4, 5, 6]
.unshift(新元素)
从开头添加
var arr = [3, 4, 5];
arr.unshift(2); // 4 返回修改后的长度
console.log(arr); // [2, 3, 4, 5]
.pop()
从末尾删
var arr = [3, 4, 5, 6];
arr.pop(); // 6 返回被删除的数
console.log(arr); // [3, 4, 5]
.shift()
从开头删
var arr = [2, 3, 4, 5];
arr.shift(); // 2 返回被删除的数
console.log(arr); // [3, 4, 5]
.reverse()
颠倒顺序
[1, 2, 3].reverse(); // [3, 2, 1]
.splice(从哪剪, 剪多长, 替换元素1, 替换元素2)
剪接
var 片儿 = ['a', 'b', '辣鸡1', '辣鸡2', 'c'];
// 从第3格开始剪,剪2格
片儿.splice(2, 2); // ["辣鸡1", "辣鸡2"] 返回减掉的东西
console.log(片儿); // ["a", "b", "c"]
// 注意,现在片儿已经剪成了['a', 'b', 'c']
// 从第2格开始剪,剪1格,进两个广告
片儿.splice(1, 1, '广告1', '广告2');
console.log(片儿); // ["a", "广告1", "广告2", "c"]
.slice(从哪剪,在哪停)
剪裁
返回剪裁的新数组,不影响原数组。
var 片儿 = ['a', 'b', '辣鸡1', '辣鸡2', 'c'];
// 从第3格开始剪,剪2格
var 垃圾堆 = 片儿.slice(2, 4); // ["辣鸡1", "辣鸡2"] 返回减掉的东西
console.log(垃圾堆); // ["辣鸡1", "辣鸡2"]
.forEach(回调函数)
迭代
['a', 'b', 'c'].forEach(function(每一条, 索引) {
console.log('第' + 索引 + '条:' + 每一条);
});
//------Console------
// 第0条:a
// 第1条:b
// 第2条:c
.filter(回调函数)
过滤器
通过你给他的条件返回一个新数组
var 旧数组 = [1, 2, 3, 4];
var 新数组 = 旧数组.filter(
// 传入一个函数,每迭代一个元素就执行一次
function(元素, 索引, 原始数组) {
// 只要大于2的元素
var 条件 = 元素 > 2;
return 条件;
}
);
console.log(新数组); // [3, 4]
.every(回调函数)
每一条
每一条都满足你给的条件
var 满足 = [1, 2, 3].every(
// 传入一个函数,每迭代一个元素就执行一次
function(元素, 索引, 原始数组) {
// 是否小于10
var 条件 = 元素 < 10;
return 条件;
}
);
/*只有当所有条件都满足时才返回true*/
console.log(满足); // true
登录后评论