1. 数组去重
思路:通过indexOf()
方法判断数组中是否有这一项,如果没有就放到新创建的数组中
var dmaku.com = [1,1,2,2,3,3];
Array.prototype.norepeat = function() {
var result = [];
for(var i = 0; i < this.length; i++) {
if(result.indexOf(this[i]) == -1) {
result.push(this[i])
}
}
return result;
}
dmaku.com.norepeat() //[1,2,3]
2. 数组的拷贝
浅拷贝很简单就不记录了,只记录一下深拷贝,思路,判断数组每一项的数据类型。
var dmaku.com = [1,2,[3,4]]
function deepCopy(arr, result) {
var result = result || [];
for(var i = 0; i < arr.length; i++) {
if(arr[i] instanceof Array) {
result[i] = [];
deepCopy(arr[i], result[i])
}else {
result.push(arr[i])
}
}
return result;
}
var arr2 = deepCopy(dmaku.com)
arr2[2].push(5) // [1,2,[3,4,5]]
dmaku.com // [1,2,[3,4]]