自己写的Array method

作者: 抓不住的风 | 来源:发表于2014-12-19 11:31 被阅读109次

    Array method总结

    1: 父集 子集 找出子集和父集的余集

    /**

    * 获取集合的补集

    * arr1 父集

    * arr2 子集

    */

    Array.prototype.getComplement = function(arr1,arr2){

    if(!arr1.length){

    return [];

    }

    var record = [];

    for(var i = 0;i < arr1.length; i++){

    for(var j = 0;j < arr2.length; j++){

    var temp = { index : i,has : false };

    if(arr1[i] == arr2[j]){

    temp.has = true;

    break;

    }

    }

    record.push(temp);

    }

    var _ = require('underscore');

    var index = _.where(record,{ has : false });

    if(index.length > 0){

    for(var i = 0;i < index.length; i++){

    index[i] = index[i].index;

    }

    }

    console.log(index);

    return index;

    }

    /**

    * 数组元素叠加

    *

    */

    Array.prototype.overAdd = function(arr){

    var temp = [];

    if(arr.length == 0){

    return [];

    }

    for(var i = 0;i < arr.length ; i++){

    if(i == 0){

    temp[i] = arr[i];

    } else {

    temp[i] = temp[i-1] + arr[i];

    }

    }

    return temp;

    }

    /**

    * 数组对象排序 根据对象的键值

    * arr 数组

    * key 键

    * type 正序 倒序

    */

    Array.prototype.arrayObjectSortByKey = function(arr,key,type){

    function desc(){//倒序

    for(var i = 0; i < arr.length -1 ;i++){

    for(var j = i; j < arr.length; j++){

    if(arr[i][key] < arr[j][key]){

    var temp = arr[i];

    arr[i] = arr[j];

    arr[j] = temp;

    }

    }

    }

    }

    function asc(){//正序

    for(var i = 0; i < arr.length -1 ;i++){

    for(var j = i; j < arr.length; j++){

    if(arr[i][key] > arr[j][key]){

    var temp = arr[i];

    arr[i] = arr[j];

    arr[j] = temp;

    }

    }

    }

    }

    if(type == 'desc'){

    desc();

    } else {

    asc();

    }

    }

    /**

    * 数组排序

    * arr 数组

    * type 正序 倒序

    */

    Array.prototype.arrSort = function(arr,type){

    function desc(x,y) {//从大到小

    if (x > y) {

    return -1;

    }

    if (x < y) {

    return 1;

    }

    if(x == y){

    return 0;

    }

    }

    function asc(x,y) {//从小到达

    if (x > y) {

    return 1;

    }

    if (x < y) {

    return -1;

    }

    if(x == y){

    return 0;

    }

    }

    if(type == 'desc'){

    arr.sort(desc);

    } else {

    arr.sort(asc);

    }

    }

    相关文章

      网友评论

      • a74e118df602:nodejs API 中util模块中有个方法 util.isArray( [] ). 可以判断是不是数组.
        for(var key in obj){
        if(obj.hasOwnProperty(key)){
        return true;
        }
        }

        这个是判断对象是否为空得方法

      本文标题:自己写的Array method

      本文链接:https://www.haomeiwen.com/subject/csgotttx.html