zoukankan      html  css  js  c++  java
  • JS之数组基础学习

    数组的终极奥义

    // console.log(Array.isArray(Array.prototype));

    创建一个数组:

    var fruits = ["Apple","Banana"];
    console.log(fruits.length);  // 2
    

    通过索引访问数组元素

    var first = first[0]; // apple
    var lase = first[1];   // banana
    

    遍历一个数组

    fruits.forEach(function (item,index,array){
        console.log(item,index);
    });
    

    添加元素到数组的末尾

    var newLength = fruits.push("Orange");
    // ["Apple", "Banana", "Orange"]
    

    删除数组末尾的元素

    var last = fruits.pop(); // remove Orange (from the end)
    // ["Apple", "Banana"];
    

    删除数组最前面的元素

    var first = fruits.shift(); // remove Apple from the front
    // ["Banana"];
    

    添加到数组的前面

    var newLength = fruits.unshift("Strawberry") // add to the front
    // ["Strawberry", "Banana"];
    

    找到某个元素在数组中的索引

    var pos = fruits.indexOf("Banana");
    // 1
    

    通过索引删除某个元素

    var removedItem = fruits.splice(pos, 1); // this is how to remove an item
    // ["Strawberry", "Mango"]
    

    连接两个或多个数组

    var a = [1,2,3];
    a.concat(4,5) //  1,2,3,4,5
    


    1.forEach 的用法

    var arr = ["1abc","2ac","3bb"];
    arr.forEach(function (item,index,arr) {
        console.log(item,index);
    });     // forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。
    等价于:
    var arr = ["wds","2ac","3bb"] ;
    for (var i = 0; i < arr.length;i++){
        console.log(arr[i]);
    }
    
    var arr = ["1abc","2ac","3bb"];
    arr.map(function (item,index,arr) {
        console.log(item,index);
    });  //***************  -- map():指“映射”。[].map(); 基本用法跟forEach方法类似
    

    2. filter 为“过滤”、“筛选”之意。指数组filter后,返回过滤后的新数组。用法跟map极为相似

    array.filter(callback,[ thisObject]);
    
    var data = [0, 1, 2, 3];
    var arrayFilter = data.filter(function(item) {
       return  alert(item);
    });
    console.log(arrayFilter);
    

    3. some 意指“某些”,指是否“某些项”合乎条件。与下面的 every算是好基友,every表示是否“每一项”都要靠谱

    array.some(callback,[ thisObject]);
    var scores = [5, 8, 3, 10];
    var current = 11;
    
    function higherThanCurrent(score) {
    return score > current;
    }
    if (scores.every(higherThanCurrent)) {   //   跟some同样是返回Boolean值
    console.log("朕准了!");
    } 
    else {
    console.log("来人,拖出去斩了!");
    }
    
    if (scores.some(higherThanCurrent)) {  //some要求至少有1个值让callback返回true就可以          了。显然,8 > 7,因此scores.some(higherThanCurrent)值为true.
    alert("通过");
    }
    else
    alert("miss");
    

    4. indexOf

    string.indexOf(searchString, position)
    array.indexOf(searchElement,[fromIndex])
    indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
    返回整数索引值,如果没有匹配(严格匹配),返回-1. fromIndex可选,表示从这个位置开始搜索,
    若缺省或格式不合要求,使用默认值0,发现使用字符串数值也是可以的,例如"3"和3都可以。
    
    var data = [2, 5, 7, 3, 5];
    
    console.log(data.indexOf(5, "a")); // 1 ("x"被忽略)
    console.log(data.indexOf(5, "3")); // 4 (从3号位开始搜索)
    console.log(data.indexOf(4)); // -1 (未找到)
    console.log(data.indexOf("5")); // -1 (未找到,因为5 !== "5")
  • 相关阅读:
    消除 transition 闪屏
    解决audio和video在手机端无法自动播放问题
    css3让图文不能复制
    改变placeholder的字体颜色大小
    css3实现水平、垂直居中
    link 和@import 的区别
    JSON与对象的相互转换
    indexOf与includes的比较
    DOM盒子模型
    关于Meta标签的一些知识
  • 原文地址:https://www.cnblogs.com/getdaydayup/p/6401781.html
Copyright © 2011-2022 走看看