1. 数组去重
- 思路:通过indexOf()方法判断数组中是否有这一项,如果没有就放到新创建的数组中
var arr = [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;
}
arr.norepeat() //[1,2,3]
2. 数组的拷贝
- 浅拷贝很简单就不记录了,只记录一下深拷贝,思路,判断数组每一项的数据类型。
var arr1 = [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(arr1)
arr2[2].push(5) // [1,2,[3,4,5]]
arr1 // [1,2,[3,4]]