一: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));