数组去重(重点案例)
有一个数组[‘c’,‘a’,‘z’,‘a’,‘x’,‘a’,‘x’,‘c’,‘b’],要求去除数组中重复的元素。
- 目标:把旧数组里面不重复的元素选取出来放入新数组中,重复的元素只保留一个放入新数组。
- 核心算法:遍历旧数组,取出旧数组元素查询新数组,如果新数组中没有该元素就在新数组中添加该元素,否则不添加。
- 实现:利用新数组.indexOf(数组元素),如果返回值为-1,则说明新数组中没有该元素,添加该元素。
<script>
// 封装一个去重函数 unique
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
var demo = unique(["c", "a", "z", "a", "x", "a", "x", "c", "b"]);
console.log(demo);
</script>
数组转换为字符串
toString() 把数组转换为字符串,逗号分隔每一项 返回一个字符串
join(‘分隔符’) 把数组中的所有元素转换为一个字符串 返回一个字符串
<script>
//数组转换为字符串
//1.toString()
var arr = [1, 2, 3];
console.log(arr.toString()); // 1,2,3
//2.join('分隔符')
var arr1 = [1, 2, 3];
console.log(arr1.join()); // 不写分隔符默认为逗号 1,2,3
console.log(arr1.join("-")); // 1-2-3
console.log(arr1.join("&")); // 1&2&3
</script>
其他常用方法
concat() 连接两个或多个数组,不影响原数组 返回一个新数组
slice() 数组截取slice(begin,end) 返回被截取后的新数组 (begin,end]
splice() 数组删除splice(第几个开始,要删除的个数) 返回被删除后的新数组 注意:会影响的原数组
<script>
var arr = [1,2,3,4,5];
var arr1 = ['a','b','c'];
console.log(arr.concat(arr1)); // [1, 2, 3, 4, 5, 'a', 'b', 'c']
console.log(arr);// [1, 2, 3, 4, 5]
console.log(arr.slice(3,5)); // [4, 5]
console.log(arr);// [1, 2, 3, 4, 5]
console.log(arr.splice(2,2));// [3, 4]
console.log(arr);// [1, 2, 5]
</script>