1. 类数组的组成
- 类数组实际上是对象
- 属性要为索引属性, 即属性名为数字
- 必须要有 length 属性
- 最好加上 push() 方法, 当加上 splice() 方法时则与数组无太大差异
- 例如
var obj = {
0 : 'a',
1 : 'b',
2 : 'c',
length: 3,
push: Array.prototype.push,
splice: Array.prototype.slice
}
- 类数组与数组类似, 在下面操作中进行 push 增加新成员后, length 属性自动变为 4
系统中数组自带的 push 方法的定义
Array.prototype.push = function(array, newattr){
array[array.length] = newattr;
length++;
}
2. 数组的去重
(1) 利用的特性
- 由于对象的属性具有唯一性, 因此将数组的每个成员转化为对象的属性名
最后遍历对象并返回新数组即可
(2) 函数示例
- 步骤
(1) 首先, 方法体内建立一个临时的对象, 用以在后面做类数组
(2) 然后, 再在方法体内建立一个临时数组, 作为返回值返回去重后的新数组
(3) 接着, 开始遍历数组, 将数组值作为属性名给类数组新增属性, 至于属性值可随意给
(4) 最后, 用临时数组逐一接收类数组的属性名即可
function remove(array){
var tempObj = {};
var tempArray = [];
for(var i = 0; i<array.length; i++){
tempObj[array[i]] = 'temp';
}
for(var prop in tempObj){
tempArray.push(prop);
}
return tempArray;
}
- 运行效果