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);
}
}
网友评论
for(var key in obj){
if(obj.hasOwnProperty(key)){
return true;
}
}
这个是判断对象是否为空得方法