一、利用数组方法 indexOf( )
indexOf( )
indexof(参数1,参数2)该方法可以检索一个字符串中是否含有指定内容,参数1——如果字符串中含有该内容,则会返回第一次出现的 索引号, 如果没有,则返回 -1 参数2——可以指定开始查找的位置。
代码示例:
// 方法二: 使用 indexOf
var other = [1, 3, 5, 2, 1, 4, 3, 1, 2, 5, 3, 1, 2, 1];
var otherArray = [];
for (var i = 0; i < other.length; i++) {
// 利用数组的indexOf方法,当数组内无此元素时返回-1,否则返回该元素在数组中的索引值
if (otherArray.indexOf(other[i]) === -1) {
otherArray.push(other[i]);
}
}
console.log(otherArray);
二、利用数组方法 includes( )
includes( )
includes() 方法用于判断字符串是否包含指定的子字符串。
如果找到匹配的字符串则返回 true,否则返回 false。
注意: includes() 方法区分大小写。
代码示例:
// 方法三: 使用includes
var one = [1, 3, 5, 2, 1, 4, 3, 1, 2, 5, 3, 1, 2, 1];
var two = [];
for (var i = 0; i < one.length; i++) {
// 利用数组的includes方法,测试该数组中是否有该值,若有则返回true,否则返回false
if (!two.includes(one[i])) {
two.push(one[i]);
}
}
console.log(two);
三、借用冒泡排序
冒泡排序示例图:
冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。
代码示例:
注意:不过本题中并未使用到第三方变量进行变量交换,只需要将重复的元素从数组中删除即可。
// 创建数组并完成初始化
var arr = [1, 3, 5, 2, 1, 4, 3, 1, 2, 5, 3, 1, 2, 1];
// 遍历数组并加以条件判断
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
// 当出现重复数据时,将该元素从数组中删除
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
console.log(arr);