您的位置:首页 > Web前端 > JavaScript

js数组的去重与降维

2015-06-09 10:50 537 查看
//  降维

$(document).ready(function(){
var shapes = [
[
[[0, 4], [0, 5], [1, 4], [1, 5]]
],
[
[[0, 3], [0, 4], [0, 5], [0, 6]],
[[0, 4], [1, 4], [2, 4], [3, 4]]
],
[
[[0, 4], [1, 4], [1, 5], [2, 5]],
[[0, 4], [0, 5], [1, 3], [1, 4]]
],
[
[[0, 5], [1, 4], [1, 5], [2, 4]],
[[0, 3], [0, 4], [1, 4], [1, 5]]
],
[
[[0, 4], [1, 3], [1, 4], [1, 5]],
[[0, 4], [1, 4], [1, 5], [2, 4]],
[[0, 3], [0, 4], [0, 5], [1, 4]],
[[0, 5], [1, 4], [1, 5], [2, 5]]
],
[
[[0, 3], [0, 4], [0, 5], [1, 3]],
[[0, 4], [0, 5], [1, 5], [2, 5]],
[[0, 5], [1, 3], [1, 4], [1, 5]],
[[0, 4], [1, 4], [2, 4], [2, 5]]
],
[
[[0, 3], [0, 4], [0, 5], [1, 5]],
[[0, 5], [1, 5], [2, 4], [2, 5]],
[[0, 3], [1, 3], [1, 4], [1, 5]],
[[0, 4], [0, 5], [1, 4], [2, 4]]
]
];

var shapes = [
[
[[0, 4], [0, 5], [1, 4], [1, 5],[0, 4], [0, 5], [1, 4], [1, 5]]
],
[
[[0, 3], [0, 4], [0, 5], [0, 6],[0, 3], [0, 4], [0, 5], [0, 6]],
[[0, 4], [1, 4], [2, 4], [3, 4],[0, 4], [1, 4], [2, 4], [3, 4]]
],
[
[[0, 4], [1, 4], [1, 5], [2, 5],[0, 4], [1, 4], [1, 5], [2, 5]],
[[0, 4], [0, 5], [1, 3], [1, 4],[0, 4], [0, 5], [1, 3], [1, 4]]
],
[
[[0, 5], [1, 4], [1, 5], [2, 4],[0, 5], [1, 4], [1, 5], [2, 4]],
[[0, 3], [0, 4], [1, 4], [1, 5],[0, 3], [0, 4], [1, 4], [1, 5]]
],
[
[[0, 4], [1, 3], [1, 4], [1, 5],[0, 4], [1, 3], [1, 4], [1, 5]],
[[0, 4], [1, 4], [1, 5], [2, 4],[0, 4], [1, 4], [1, 5], [2, 4]],
[[0, 3], [0, 4], [0, 5], [1, 4],[0, 3], [0, 4], [0, 5], [1, 4]],
[[0, 5], [1, 4], [1, 5], [2, 5],[0, 5], [1, 4], [1, 5], [2, 5]]
],
[
[[0, 3], [0, 4], [0, 5], [1, 3],[0, 3], [0, 4], [0, 5], [1, 3]],
[[0, 4], [0, 5], [1, 5], [2, 5],[0, 4], [0, 5], [1, 5], [2, 5]],
[[0, 5], [1, 3], [1, 4], [1, 5],[0, 5], [1, 3], [1, 4], [1, 5]],
[[0, 4], [1, 4], [2, 4], [2, 5],[0, 4], [1, 4], [2, 4], [2, 5]]
],
[
[[0, 3], [0, 4], [0, 5], [1, 5],[0, 3], [0, 4], [0, 5], [1, 5]],
[[0, 5], [1, 5], [2, 4], [2, 5],[0, 5], [1, 5], [2, 4], [2, 5]],
[[0, 3], [1, 3], [1, 4], [1, 5],[0, 3], [1, 3], [1, 4], [1, 5]],
[[0, 4], [0, 5], [1, 4], [2, 4],[0, 4], [0, 5], [1, 4], [2, 4]]
]
];

Array.prototype.dr = function(){
var that = this; // 不能给this赋值
for (var i = 0; i < that.length; i++) {
if(that[i] instanceof Array){
that = that.slice(0, i).concat(that[i], that.slice(i+1));
i--;
}
}
return that;
};

console.log(shapes.dr());

console.log((function(list) {
var shape = list.shift();
return list.length === 0 ? shape : $.merge(shape, arguments.callee(list));
})($.extend(true, [], shapes)));
});


// 去重
Array.prototype.unique = function(){
var res = [], json = {}, i = 0, len = this.length;
for(; i < len; i++) {
if(!json[this[i]]) {
res.push(this[i]);
json[this[i]] = 1;
}
}

return res;
};

源自:http://yanzhihong23.iteye.com/blog/2042805
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: