今日份的面试题——同城2017前端面试题
题目:编写请给 Array 本地对象增加一个原型方法,它用于删除数字数组中重复的数字(可能有多个),返回值是一个包含被删除的重复条目的新数组。
--------------分析------------------------------
原型方法的编写方式:Object.prototype.函数名 = function () {函数体}。
要使用参数时,this为调用该函数的实例。
--------------代码------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>添加原型函数</title>
</head>
<body>
<script>
Array.prototype.getRespeat = function () {
var arr = this;
var newarr = [];
for (let i = 0, num = arr.length; i < num; i++) {
let item = arr.shift();
//查询抛出前一个元素item后,数组arr中是否还有相同的元素,有则入newarr,无就继续遍历
if (arr.indexOf(item) >= 0) {
newarr.push(item);
} else {
continue;
}
console.log(item);
}
return newarr;
}
var arr = ['a', 'b', 'c', 'b', 'a', 'd', 'a', 'd', 'd'];
var newarr = arr.getRespeat();
console.log(newarr);
</script>
</body>
</html>
--------------结果------------------------------