1switch语句注意事项
(1)switch语句中switch()括号中的值与case后边的值必须是全等才可以成功匹配到。
(2)当前的case里没有break,则会执行下一个case,直到遇见break。
2.switch与if else if语句的区别:
3. dowhile 语句与while的区别,dowhile语句会先执行一次循环体,再判断。while有可能一次也不执行。
4. 数组的创建方式
var arr = new Array(); //利用new Array() 创建了一个空数组
var arr = new Array(2); //创建了一个长度为2的数组,但是内部为空
var arr = newArray(1,2); //等价于var arr = [1,2];
var arr = []; //利用数组字面量
var arr1 = [1,2,3];
数组里可以放任何数据类型的数据。数据用逗号分隔。
5.数组的遍历。
var arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日'];
for (var i = 0; i < 7; i++) {
console.log(arr[i]);
}
相较于直接用数字7,数组的长度,更推荐用如下写法:
var arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日'];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
6.数组新增元素
给数组新增元素的方法:
通过修改数组索引
var arr = ['123','a','b','c',4,true];
arr[0] = '1'; //修改原有元素
arr[6] = 'd'; //添加元素。注意不能直接给数组名赋值,会覆盖掉之前的所有元素。
console.log(arr);
7.筛选数组方法
(1)
var arr = [10,20,54,36,78,100,14,35,68];
var NewArr = [];
var j = 0;
for (var i = 0; i < 10; i++) {
if (arr[i] > 50) {
NewArr[j] = arr[i];
j++;
}
}
console.log(NewArr);
(2)
var arr = [10,20,54,36,78,100,14,35,68];
var NewArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > 50) {
NewArr[NewArr.length] = arr[i];
}
}
console.log(NewArr);
3.
var arr = [10,20,54,36,78,100,14,35,68];
var NewArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > 50) {
//NewArr[NewArr.length] = arr[i];
NewArr.push(arr[i]);
}
}
console.log(NewArr);
8.数组去重(删除指定的元素)
//这里的只是去除指定的多余的元素,并不能实现对所有元素的去重
var arr = [1,0,2,66,8,2,5,2,7,0];
var NewArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
NewArr[NewArr.length] = arr[i];
}
}
console.log(NewArr);
//下面演示真正的去重
//核心算法:遍历旧数组,拿着数组元素去遍历新的空数组,如果新数组中没有这个元素,就添加,否则不添加。
//利用indexOf 如果没有这个元素返回-1的特点
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
var demo = unique([1,0,2,66,8,2,5,2,7,0]);
console.log(demo);
9.翻转数组(附判断数组的方法1.instanceof 一种运算符,检测是否为数组,返回布尔值2.Array.isArray(参数))
function reverse(arr) {
if(Array.isArray(arr)) { //ie9以上新增的方法
var newArr = [];
for (var i = arr.length-1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
} else {
return '这个参数要求必须是数组格式!';
}
}
console.log(reverse([1,2,3]));
console.log(reverse(1,2,3));
function reverse(arr) {
if(arr instanceof Array) {
var newArr = [];
for (var i = arr.length-1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
} else {
return '这个参数要求必须是数组格式!';
}
}
console.log(reverse([1,2,3]));
console.log(reverse(1,2,3));
js里的reverse方法可以直接进行翻转操作:
var arr = [1,2,3];
reverse(arr);
console.log(arr);
10.添加、删除数组元素的方法
var arr = [1,2,3];
//arr.push(4,'pink'); //在数组尾部添加一个或多个元素
console.log(arr.push(4,'pink'));
console.log(arr);
push是在数组尾部添加,直接写想添加的元素即可
push完毕之后,返回的结果是数组的新长度,且原数组也会发生变化。
var arr = [1,2,3];
//arr.unshift(4,'pink'); //在数组首部添加一个或多个元素
console.log(arr.unshift(4,'pink'));
console.log(arr);
unshift完毕之后,返回的结果是数组的新长度,且原数组也会发生变化。它是在数组首部添加元素
pop删除数组的最后一个元素(一次只能删除一个)
var arr = [1,2,3];
console.log(arr.pop());
console.log(arr);
返回值为所删除的最后一个元素。
shift删除数组的第一个元素(一次只能删除一个)
var arr = [1,2,3];
console.log(arr.shift());
console.log(pop);
返回的是所删除的第一个元素
11.返回数组元素的索引
var arr = ['blue','red','pink','yellow','red'];
console.log(arr.indexOf('blue')); //indexOf 返回该数组元素的索引号 0
//它只返回第一个满足条件的索引号,从前往后 有lastIndexOf相反的从后往前开始查找,返回找到的第一个元素的索引号,找不到也返回-1.
console.log(arr.indexOf('red')); //1
//找不到对应的元素就返回-1
console.log(arr.indexOf('green')); //-1
12.数组转换为字符串
var arr1 = ['red','blue','yellow','pink']; console.log(arr1.join()); //不加分隔符默认为逗号 console.log(arr1.join('-')); console.log(arr1.join('&'));
13. 连接两个或多个数组concat()方法
使用规范:
要拼接的数组.concat(数组1,数组2...) 这里返回的是一个副本数组,并不会影响原数组
var arr = [1,2,3];
var arr1 = ['red','pink','yellow'];
var arr2 = [false,true];
var newArr = arr.concat(arr1,arr2);
console.log(newArr);
14.数组截取slice()
var arr = ['Happy','fninmd','new','year'];
console.log(arr.slice(1,3)); //'fninmd','new'
console.log(arr.slice(2)); //'new','year'
console.log(arr.slice(1,4)); //'fninmd','new','year'
console.log(arr.slice(-2)); //'new','year'
slice(begin,end);
begin
:
提取起始处的索引(从 0
开始),从该索引开始提取原数组元素。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2)
表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。如果省略 begin
,则 slice
从索引 0
开始。如果 begin
超出原数组的索引范围,则会返回空数组。
end
:
提取终止处的索引(从 0
开始),在该索引处结束提取原数组元素。slice
会提取原数组中索引从 begin
到 end
的所有元素(包含 begin
,但不包含 end
)。slice(1,4)
会提取原数组中从第二个元素开始一直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1)
表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。如果 end
被省略,则 slice
会一直提取到原数组末尾。如果 end
大于数组的长度,slice
也会一直提取到原数组末尾。
15.数组删除splice()
var arr = [1,3,5,9,8];
arr.splice(1,0,2); //从索引为1处开始,添加元素 2 且改变原数组
console.log(arr); //1,2,3,5,9,8
arr.splice(4,1,6,7); //从3开始删除1个元素,添加6 7
console.log(arr);
arr.splice(-2,1); //从倒数第二个位置开始删除一个元素
console.log(arr); //1,2,3,5,6,8
arr.splice(2);//从2的位置删除所有元素
console.log(arr); //1,2