类数组 数组

类数组

    <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 是迭代数组方法中最不被人熟知的两个函数.。他们应该使用在那些需要把数组的元素两两递归处理,并最终计算成一个单一结果的算法。
 -->

猜你喜欢

转载自www.cnblogs.com/wxy0715/p/12442363.html
今日推荐