zoukankan      html  css  js  c++  java
  • JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()

    一、Array

    1、some()和every()

    some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

    every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。

    var array = [1,3,5,7,9,11,13,15,17]
    undefined
    array.some(function(item,index){
        return item>9
    })
    //true

    返回 true

    var array = [1,3,5,7,9,11,13,15,17]
    undefined
    array.every(function(item,index){
        return item>9
    })
    //false

    返回 false

    2、join()

    join() 方法用于把数组中的所有元素放入一个字符串。

    var arr =[4,5,34,3453,3453,33,"哈哈哈哈"];
    var arr2 = arr.join("");
    console.log(arr2);
    console.log(typeof(arr2)); //string
    console.log(typeof(arr));   //object
    //45343453345333哈哈哈哈
    //string
    //object

     输出:

    //45343453345333哈哈哈哈
    //string
    //object

    3、concat()

    连接2个以及更多的数组,返回一个新数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
     
    var arr2 = new Array(3)
    arr2[0] = "James"
    arr2[1] = "Adrew"
    
    var array3 = arr.concat(arr2);
    console.log(array3);
    console.log(arr);
    console.log(arr2);

    输出:

    (6) ["George", "John", "Thomas", "James", "Adrew", empty]
    (3) ["George", "John", "Thomas"]
    (3) ["James", "Adrew", empty]

    4、pop()和push()和shift()和unshift()

    会改变数组的本身的长度及内容。

    不同的是 push()、pop() 是从数组的尾部进行增减unshift()、shift() 是从数组的头部进行增减

    (1)push()是对尾部添加若干元素,unshift()是对头部添加若干元素,返回数组新长度

    var arr = [1, 2];
    arr.push(3,4);
    console.log(arr);   //[1,2,3,4]
    
    arr.unshift(0,0.5);  
    console.log(arr);  //[0,0.5,1,2,3,4]

    (2)pop()从数组的尾部删除1个元素(删且只删除1个),并返回 被删除的元素;空数组是继续删除,不报错,但返回undefined;而shift()是对头部删除1个元素(只删除1个)。。。

    //接上面数组arr
    arr.pop()   //返回4
    console.log(arr);  //[0, 0.5, 1, 2, 3]

    arr.shift() //返回0
    console.log(arr) //[0.5,1,2,3]

    5、map()

    map“映射”,也就是原数组被“映射”成对应新数组。

    var data = [1, 2, 3, 4];
    var array = data.map(function (item) {
      return item * item;
    });
    console.log(array) //[1,4,9,16]

    输出:[1,4,9,16]

    var users = [
      {name: "张含韵", "email": "zhang@email.com","age":"18"},
      {name: "江一燕",   "email": "jiang@email.com","age":"34"},
      {name: "李小璐",  "email": "li@email.com","age":"28"}
    ];
    
    var emailsAge = users.map(function (item) { return {email:item.email,age:item.age}});

    输出

    [{email: "zhang@email.com", age: "18"},{email: "jiang@email.com", age: "34"},{email: "li@email.com", age: "28"}]

    6、filter()

    filter()方法用于把Array的某些元素过滤掉,然后返回剩下的元素,并创建一个包含所有通过测试的元素的新数组。
    function isBigEnough(element) {
         return element >= 10;
     }
    var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); 
    console.log(filtered);//[ 12, 130, 44 ]

    输出:[12,130,44]

    功能(1):一个Array中,删掉偶数,只保留奇数

    var arr = [1, 2, 4, 5, 6, 9, 10, 15];
    var num = arr.filter(function (x) {
         return x % 2 !== 0;
    });
    console.log(num) //[1,5,9,15]

    功能(2):把Array中的空字符串删掉

     var arr = ['A', '', 'B', null, undefined, 'C', '  '];
     var string = arr.filter(function (s) {
         return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
     });
     console.log(string); // ['A', 'B', 'C']

    功能(3):可以巧妙地去除Array的重复元素,

    注意:去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。

    var  r, arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
    r = arr.filter(function (element, index, self) {
        return self.indexOf(element) === index;
    });
    console.log(r.toString()); //apple,strawberry,banana,pear,orange
  • 相关阅读:
    Eclipse Mars5.4.2集成scala IDE
    ajax请求无法下载文件
    Linux
    解决IE下URL传参中文乱码的问题
    jquery easyui datagrid.load方法参数传递问题 .
    Easyui设置datagrid自适应屏幕宽度的方法
    MapReduce方法的理解和遇到的问题总结
    hadoop操作中遇到的问题
    Maven中常见的问题
    jdk及mysql安装常见问题
  • 原文地址:https://www.cnblogs.com/chengxs/p/9256570.html
Copyright © 2011-2022 走看看