zoukankan      html  css  js  c++  java
  • 类数组 数组

    类数组

        <script type="text/javascript"> 
        var obj={
            "0":'a',
            '1':'b',
            'length':2,
             'splice':Array.prototype.splice,       
            'push':Array.prototype.push
        }
        Array.prototype.push=function (target){
        obj[obj.length]=target;
        obj.length++; 
        }
        </script>

    数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript">
        //1.push最后一位增加一个数
        //2.pop去掉数组最后的一位
        //3.unshif再第一位增加一个数 shift去掉数组的第一位
        //4.reverse颠倒数组
        //5.sort排序(升序)
        //6.splice(从第几位开始截取多少长度,从切口处添加新的数据)
        //7.retBytes(数组)
        //8.concat
        //9.join   arr.join('!')按照传的参数连接
        //10.split
        //11.toString把数组弄成字符串
        //12.slice 从该为位取到那位(1,3)或者(1)
            // var arr=[];
            // arr=new Array(1,2,3);
            // Array.prototype.push=function (){
            // for(var i=0;i<arguments.length;i++){
            //     this[this.length]=arguments[i];
            // }
            // } 
    
            var arr=[1,5,7,89,2];
            arr.sort(function (){
                Math.random();
            });
            arr.sort(function (a,b){
                 return a-b;//升序
                 return b-a;//降序
                  //if(a>b){return 1} else{return -1}
            });
            </script>
    </body>
    </html>
    
    
    
    <!-- 
        1.concat() 连接两个数组并返回一个新的数组**
    **。
    var myArray = new Array(“1”, “2”, “3”); 
    myArray = myArray.concat(“a”, “b”, “c”); 
    // myArray is now [“1”, “2”, “3”, “a”, “b”, “c”]
    2. join(deliminator = ‘,’) 将数组的所有元素连接成一个字符串。
    var myArray = new Array(“Wind”, “Rain”, “Fire”); 
    var list = myArray.join(” - “); // list is “Wind - Rain - Fire” 
    3.push() 在数组末尾添加一个或多个元素,并返回数组操作后的长度。
    var myArray = new Array(“1”, “2”); 
    myArray.push(“3”); // myArray is now [“1”, “2”, “3”] 
    4.pop() 从数组移出最后一个元素,并返回该元素。
    var myArray = new Array(“1”, “2”, “3”); 
    var last = myArray.pop(); 
    // myArray is now [“1”, “2”], last = “3” 
    5.shift() 从数组移出第一个元素,并返回该元素。
    var myArray = new Array (“1”, “2”, “3”); 
    var first = myArray.shift(); 
    // myArray is now [“2”, “3”], first is “1” 
    6.unshift() 在数组开头添加一个或多个元素,并返回数组的新长度。
    var myArray = new Array (“1”, “2”, “3”); 
    myArray.unshift(“4”, “5”); 
    // myArray becomes [“4”, “5”, “1”, “2”, “3”] 
    7.slice(start_index, upto_index) 从数组提取一个片段,并作为一个新数组返回。
    var myArray = new Array (“a”, “b”, “c”, “d”, “e”); 
    myArray = myArray.slice(1, 4); // starts at index 1 and extracts all elements 
    // until index 3, returning [ “b”, “c”, “d”] 
    8.splice(index, count_to_remove, addElement1, addElement2, …)从数组移出一些元素,(可选)并替换它们。
    var myArray = new Array (“1”, “2”, “3”, “4”, “5”); 
    myArray.splice(1, 3, “a”, “b”, “c”, “d”); 
    // myArray is now [“1”, “a”, “b”, “c”, “d”, “5”] 
    // This code started at index one (or where the “2” was), 
    // removed 3 elements there, and then inserted all consecutive 
    // elements in its place. 
    9.reverse() 颠倒数组元素的顺序:第一个变成最后一个,最后一个变成第一个。
    var myArray = new Array (“1”, “2”, “3”); 
    myArray.reverse(); 
    // transposes the array so that myArray = [ “3”, “2”, “1” ] 
    10.sort() 给数组元素排序。
    var myArray = new Array(“Wind”, “Rain”, “Fire”); 
    myArray.sort(); 
    // sorts the array so that myArray = [ “Fire”, “Rain”, “Wind” ] 
    sort() 也可以带一个回调函数来决定怎么比较数组元素。这个回调函数比较两个值,并返回3个值中的一个:
    例如,下面的代码通过字符串的最后一个字母进行排序:
    var sortFn = function(a, b){ 
    if (a[a.length - 1] < b[b.length - 1]) return -1; 
    if (a[a.length - 1] > b[b.length - 1]) return 1; 
    if (a[a.length - 1] == b[b.length - 1]) return 0; 
    } 
    myArray.sort(sortFn); 
    // sorts the array so that myArray = [“Wind”,”Fire”,”Rain”] 
    如果 a 小于 b ,返回 -1(或任何负数) 
    如果 a 大于 b ,返回 1 (或任何正数) 
    如果 a 和 b 相等,返回 0。 
    11.indexOf(searchElement[, fromIndex]) 在数组中搜索searchElement 并返回第一个匹配的索引。
    var a = [‘a’, ‘b’, ‘a’, ‘b’, ‘a’]; 
    console.log(a.indexOf(‘b’)); // logs 1 
    // Now try again, starting from after the last match 
    console.log(a.indexOf(‘b’, 2)); // logs 3 
    console.log(a.indexOf(‘z’)); // logs -1, because ‘z’ was not found 
    12.lastIndexOf(searchElement[, fromIndex]) 和 indexOf 差不多,但这是从结尾开始,并且是反向搜索。
    var a = [‘a’, ‘b’, ‘c’, ‘d’, ‘a’, ‘b’]; 
    console.log(a.lastIndexOf(‘b’)); // logs 5 
    // Now try again, starting from before the last match 
    console.log(a.lastIndexOf(‘b’, 4)); // logs 1 
    console.log(a.lastIndexOf(‘z’)); // logs -1 
    13.forEach(callback[, thisObject]) 在数组每个元素项上执行callback。
    var a = [‘a’, ‘b’, ‘c’]; 
    a.forEach(function(element) { console.log(element);} ); 
    // logs each item in turn 
    14.map(callback[, thisObject]) 在数组的每个单元项上执行callback函数,并把返回包含回调函数返回值的新数组(译者注:也就是遍历数组,并通过callback对数组元素进行操作,并将所有操作结果放入数组中并返回该数组)。
    var a1 = [‘a’, ‘b’, ‘c’]; 
    var a2 = a1.map(function(item) { return item.toUpperCase(); }); 
    console.log(a2); // logs A,B,C 
    15.filter(callback[, thisObject]) 返回一个包含所有在回调函数上返回为true的元素的新数组(译者注:callback在这里担任的是过滤器的角色,当元素符合条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素)。
    var a1 = [‘a’, 10, ‘b’, 20, ‘c’, 30]; 
    var a2 = a1.filter(function(item) { return typeof item == ‘number’; }); 
    console.log(a2); // logs 10,20,30 
    16.every(callback[, thisObject]) 当数组中每一个元素在callback上被返回true时就返回true(译者注:同上,every其实类似filter,只不过它的功能是判断是不是数组中的所有元素都符合条件,并且返回的是布尔值)。
    function isNumber(value){ 
    return typeof value == ‘number’; 
    } 
    var a1 = [1, 2, 3]; 
    console.log(a1.every(isNumber)); // logs true 
    var a2 = [1, ‘2’, 3]; 
    console.log(a2.every(isNumber)); // logs false 
    17.some(callback[, thisObject]) 只要数组中有一项在callback上被返回true,就返回true(译者注:同上,类似every,不过前者要求都符合筛选条件才返回true,后者只要有符合条件的就返回true)。
    function isNumber(value){ 
    return typeof value == ‘number’; 
    } 
    var a1 = [1, 2, 3]; 
    console.log(a1.some(isNumber)); // logs true 
    var a2 = [1, ‘2’, 3]; 
    console.log(a2.some(isNumber)); // logs true 
    var a3 = [‘1’, ‘2’, ‘3’]; 
    console.log(a3.some(isNumber)); // logs false 
    以上方法都带一个被称为迭代方法的的回调函数,因为他们以某种方式迭代整个数组。都有一个可选的第二参数 thisObject,如果提供了这个参数,thisObject 变成回调函数内部的 this 关键字的值。如果没有提供,例如函数在一个显示的对象上下文外被调用时,this 将引用全局对象(window).
    实际上在调用回调函数时传入了3个参数。第一个是当前元素项的值,第二个是它在数组中的索引,第三个是数组本身的一个引用。 JavaScript 函数忽略任何没有在参数列表中命名的参数,因此提供一个只有一个参数的回调函数是安全的,例如 alert 。
    19.reduce(callback[, initialValue]) 使用回调函数 callback(firstValue, secondValue) 把数组列表计算成一个单一值(译者注:他数组元素两两递归处理的方式把数组计算成一个值)
    var a = [10, 20, 30]; 
    var total = a.reduce(function(first, second) { return first + second; }, 0); 
    console.log(total) // Prints 60 
    reduceRight(callback[, initalvalue]) 和 reduce()相似,但这从最后一个元素开始的。
    reduce 和 reduceRight 是迭代数组方法中最不被人熟知的两个函数.。他们应该使用在那些需要把数组的元素两两递归处理,并最终计算成一个单一结果的算法。
     -->
  • 相关阅读:
    iOS中过滤html文档中的标签
    十六进制函数转换UIColor对象
    vue使用echarts
    vue打包部署
    charels代理跨域访问接口
    vue 使用highcharts
    vue配置跨域
    命令行
    安装nvm
    vsCode个人设置
  • 原文地址:https://www.cnblogs.com/wxy0715/p/12442363.html
Copyright © 2011-2022 走看看