给数组的原型对象上添加去重方法 ,并将去重的数组返回 [1,3,6,3,6]
时间: 2024-05-30 17:16:20 浏览: 50
Array.prototype.unique = function() {
let result = [];
let map = {};
for (let i = 0; i < this.length; i++) {
if (!map[this[i]]) {
result.push(this[i]);
map[this[i]] = true;
}
}
return result;
}
let arr = [1, 3, 6, 3, 6];
let uniqueArr = arr.unique();
console.log(uniqueArr); // [1, 3, 6]
相关问题
在数组的原型对象上扩展一个方法mySort,去重并由小到大排序.如: var tempArray =[1,2,3,4,5,6,7,8,9,10];输出mySort方法去重排序后得数组、
好的,针对您的问题,我可以给出以下代码实现:
```javascript
Array.prototype.mySort = function() {
// 数组去重
const uniqueArray = Array.from(new Set(this));
// 使用sort方法进行排序
uniqueArray.sort(function(a, b) {
return a - b;
});
return uniqueArray;
};
const tempArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sortedArray = tempArray.mySort();
console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
```
在这个代码中,我们在原型对象上扩展了一个名为mySort的方法,该方法首先通过Set对象去重,然后使用sort方法进行排序,最后返回去重排序后的数组。最后,我们使用给定的tempArray数组进行测试并打印输出结果。
使用原型链继承:让子对象调用父对象中的方法,实现数组去重
首先,我们可以使用原型链继承的方式来创建一个父对象,它包含一个去重方法:
```javascript
function UniqueArray() {}
UniqueArray.prototype.unique = function(array) {
return array.filter(function(item, index, arr) {
return arr.indexOf(item) === index;
});
};
```
然后,我们创建一个子对象,并将父对象作为它的原型:
```javascript
var child = Object.create(new UniqueArray());
```
现在,我们就可以在子对象中使用父对象的去重方法了:
```javascript
var array = [1, 2, 3, 4, 2, 1];
var uniqueArray = child.unique(array); // [1, 2, 3, 4]
```
完整代码如下:
```javascript
function UniqueArray() {}
UniqueArray.prototype.unique = function(array) {
return array.filter(function(item, index, arr) {
return arr.indexOf(item) === index;
});
};
var child = Object.create(new UniqueArray());
var array = [1, 2, 3, 4, 2, 1];
var uniqueArray = child.unique(array); // [1, 2, 3, 4]
```