一:ECMA5中数组的新方法
1. filter()创建一个新数组,新数组中的元素是通过检查指定的数组中符合条件的所有元素
var arr = [2,3,4,6,7,8]; var newArr1 = arr.filter(function(value){ return value>3; }); console.log(newArr1);
2.every() 此方法用于检测数组所有元素都符合指定条件。(不改变原数组)
var arr1 = [6,7,8,4,5]; var bool = arr1.every(function(value){ return value > 2; }); console.log(bool);
3.map() 此方法按照原始数组顺序依次处理元素
var arr4 = [1,2,3,4,5,6]; var newArr2 = arr4.map(function(value){ return value*value; }); console.log(newArr2);
4.some() 此方法用于检测数组中的元素是否满足指定条件
var arr2 = [1,2,3,4,5,6]; var boo = arr2.some(function(value){ return value>5; }); console.log(boo);
二:多维数组 (通俗来说就是数组中的元素还是数组)
访问多维数组内的元素使用[][]:
var array = [1,2,3,4,['a','b','c',['大毛','二毛','三毛']]]; console.log(array); //访问三毛 console.log(array[4][3][2])
三:类数组对象 (首先,类数组对象不是数组,因此它不具有数组的方法。但是它却拥有数组的一些特性。如拥有索引或长度等)
1.arguments
function demo(){
console.log(arguments);arguments.length;
}
demo(1,2,3,4,45,5);
2.Elementcollection 元素集合
<ul id="first">
<li class="active"><a href="">手机</a></li>
<li><a href="">电脑</a></li>
<li><a href="">洗衣机</a></li>
<li><a href="">冰箱</a></li>
<li><a href="">彩电</a></li>
</ul>
<li><a href="">卫衣</a></li>
<li><a href="">T恤</a></li>
<li><a href="">牛仔裤</a></li>
<script>
//获取一个元素
var first = document.getElementById('first');
console.log(first);
//获取一组元素 (类数组)
var list = document.getElementsByTagName('li'); //获取所有的li
console.log(list);
var firstli = first.getElementsByTagName('li');
console.log(firstli);
四:元素集合的遍历
1.使用for遍历(推荐使用)
接上图程序
for(var i = 0; i<firstli.length; i++){ console.log(firstli[i]); }
2.使用for in遍历(不推荐使用,因为它会将不需要的内容遍历出来)
for(var j in firstli){ console.log(firstli[j]); }

五:自定义一个类数组对象
var obj = {} for(var i = 0; i<4; i++){ obj[i] = i*i; } obj.length = 4; console.log(obj);
六:作为数组使用的字符串
var str = 'hello world'; console.log(str[0]); console.log(str[2]); str[1] = 'o'; console.log(str); for(var j = 0; j<str.length; j++){ console.log(str[j]); }

注:作为数组使用的字符串只能访问,无法进行修改
七:课后小练习
1.利用input(checkbox)实现 全选 全不选 反选 三个功能
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小实例</title>
</head>
<body>
<h4>请选择您喜欢的男神:</h4>
<label><input type="checkbox" name="man"[]>张一</label><br>
<label><input type="checkbox" name="man"[]>王二</label><br>
<label><input type="checkbox" name="man"[]>吴三</label><br>
<label><input type="checkbox" name="man"[] checked>赵四</label><br>
<label><input type="checkbox" name="man"[] checked>毛五</label><br>
<label><input type="checkbox" name="man"[]>1钱六</label><br>
<hr>
<button onclick="change(0)">全选</button>
<button onclick="change(1)">全不选</button>
<button onclick="change(2)">反选</button>
<script>
//获取所有的input
var inputlist = document.getElementsByTagName('input');
//定义函数
function change(n){
for(var i = 0; i<inputlist.length; i++){
switch(n){
case 0:
inputlist[i].checked = true;
break;
case 1:
inputlist[i].checked = false;
break;
case 2:
inputlist[i].checked = !inputlist[i].checked;
break;
}
}
}
</script>
</body>
</html>
2使用函数自定义数组的其它方法:
2.1数组去重(删除数组中重复的元素)
var array = ['大毛','二毛','三毛','二毛','三毛']; function unique(arr){ if(!Array.isArray(arr)){ return false; } //声明一个空数组 var newArr = []; for(var i = 0; i<arr.length; i++){ if(newArr.indexOf(arr[i]) == -1){ newArr.push(arr[i]); } } return newArr; } console.log(unique(array)); console.log(unique([1,2,3,1,2,3,1,2,3]));
2.2求数组元素的和
var arr = [3,4,5,7]; function getNum(arr){ if(!Array.isArray(arr)){ return false; } var n = 0; arr.map(function(value){ n+=value; }); return n; } console.log(getNum(arr));
2.3删除数组中指定的元素
var array = ['大毛','二毛','三毛','二毛','三毛']; function del(value,arr){ if(value == undefined || !Array.isArray(arr)){ return false; } for(var i = 0; i<arr.length; i++){ if(arr[i] === value){ arr.splice(i,1); i--; } } return arr; } console.log(del('二毛',array));
浙公网安备 33010602011771号