创建数组的方式
var arr = ['张三','李四','王五','小明'];
var arr2 = new Array(3);
创建出 一个数组 [empty*3],三个空元素数组
var arr3 = new Array(2,3,5);
console.log(typeof arr); // object
// 判断一个 变量 是不是 数组
// instanceof
console.log(arr instanceof Array); // true 代表 是数组
console.log(obj instanceof Array); // fasle 代表 不是数组
两个特性
- 长度:console.log(arr.length);
- 角标:console.log(arr[1]);
数组基本操作:CURD
create update retrieve delete
// 获取元素 通过索引
var tempName = arr[2];
console.log(tempName);
// 新增元素 通过索引
arr[4] = '赵六';
// 修改元素 通过索引
arr[1] = '小红';
// 删除元素
// 通过一些方法 才能删除元素 需要知道删除元素的索引
// arr.splice(2,1); 删除位置,删除个数
// 利用长度属性也可以想实现 间接的删除
// 把长度 从5 改成4
arr.length = 4;
console.log(arr);
循环遍历数组
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
数组基本操作
// 总结 : 添加 push() / unshift() 返回值 新长度
// 删除 pop() / shift() 返回值删掉的元素
- Concat 连接两个或多个数组
var newArr = nameArr1.concat(nameArr2);
- Join 将数组转换为字符串,用指定符号连接
console.log(arr.join('-')); // '1-2-3'
- Split() 指定分隔符(默认以逗号分隔),将字符串分割为字符串数组。
var email = "abc@163.com;cc@126.com;frg@qq.com";
var emailArr = email.split(';');
console.log(emailArr);
// ["abc@163.com", "cc@126.com", "frg@qq.com"]
实现数组翻转
- 直接用reverse方法
// [97, 68, 72, 29, 51, 45]
// 数组翻转可以直接用方法reverse
var array = [97, 68, 72, 29, 51, 45];
var arr = array.reverse();
console.log(arr);
- 第二种
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i] == -1)) {
newArr.unshift(arr[i])
}
} console.log(newArr);
- 第三种
var arr1 = new Array();
for (var i = newArr.length - 1; i >= 0; i--) {
arr1.push(newArr[i]);
}
console.log(arr1);
计算输入日期是 这一年的第几天?
// 提示: 判断闰年 (四年一闰拜年不润,四百年再润)
// year%4===0&&year%!==0||year%400===0
var year = Number(prompt('年'));
var month = Number(prompt('月'));
var day = Number(prompt('日'));
var array = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var sum = 0;
for (var i = 0; i <= (month - 2); i++) {
sum += array[i];
}
console.log(Number(sum + day));
var all = sum + day;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
var a = all + 1;
}
console.log(a);
删除符合条件的数组
工资的数组[1500,1200,2000,2100,2100,1800],把工资超过2000的删除 -->
var arr = [1500, 1200, 2000, 2100, 2100, 1800];
for (var i = 0; i <= arr.length - 1; i++) {
if (arr[i] > 2000) {
arr.splice(i,1);
i-=1; //删掉后会使后面元素的索引值前进一位
}
} console.log(arr);