游戏编程研究院pomelo 游戏开发

自己写的Array method

2014-12-19  本文已影响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);

}

}

上一篇下一篇

猜你喜欢

热点阅读