1、第一篇:我所用过得的循环遍历
- 1、 for:for (var i = 0; i < ary.length; i++) {console.log(ary[i])}
- 2、 for in 当前对象:let obj = { name: 'Tom', age: 23, id: 6 };for (let keys in obj){console.log(keys);console.log(obj[keys]);}
- 3、 forEach 专门用来循环数组的:let arr = [a,b,c,d];arr.forEach(function (item, i, all) {console.log(item);数组中的每项console.log(i); 索引 console.log(all); 整个数组}
- 4、 map循环:var ary = [1, 2, 3, 4, 5];var a2 = ary.map(function (item, index, ary) {item 当前这一项,index 当前项的索引,ary原数组 ary === a}
- 5、 while循环:while(循环条件){ 只要条件为true 就一直循环下去 }
- 6、 for of循环:Es6 中新增的语句 for…of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象
2、第二篇:js 去重方法
第一种根据下标:
var arr = ['f', '0', '3', 'f', 'd', '2', 'd', 'd']
var newarr = [] //定义一个新的数组
for (var i= 0; i< arr.length; i++) { //遍历arr 每一项
if(newarr.indexOf(arr[i]) == -1) { //判断newarr数组是否存在arr项
newar.push(arr[i]) //newarr里面不存在就push
}
}
console.log(newarr) //["f", "0", "3", "d", "2"]
indexOf() 返回某个指定字符串值在字符串中首次出现的位置 如果没有就返回 -1
newarr这个数组 里面找下是否存在arr数组重复的项 没有就push
第二种常规去重:
var arr = ['f', '0', '3', 'f', 'd', '2', 'd', 'd']
function unique(arr) {
var newarr = [arr[0]] //这里构建一个newarr数组 且存放了第一个值 以便下面对比
for (var i= 1; i< arr.length; i++) {
var isrepeat = false
for (var j= 0; j< newarr.length; j++) { //循环两个数组做对比
if(arr[i] == newarr[j]) {
isrepeat = true
break //这里判断下循环arr时候 跟newarr对比 相等就跳出 且给出标记 当前arr数组第几个是出现重复的
}
}
if (!isrepeat) {
newarr.push(arr[i]) //这里 true标记的都是重复的 false都是可以添加的
}
}
return newarr //完事返回
}
console.log(unique(arr)) //["f", "0", "3", "d", "2"]
第三种对象属性去重:
var arr = ['f', '0', '3', 'f', 'd', '2', 'd', 'd']
function unique(arr) {
var newarr = [] //构建newarr 数组
var obj = {} //构建一个对象obj
for (var i= 0; i< arr.length; i++) {
if (!obj[arr[i]]) { //如果元素跟数组对比
newarr.push(arr[i])
obj[arr[i]] = 1 // 元素内容作为对象属性
}
}
return newarr
}
console.log(unique(arr)) //["f", "0", "3", "d", "2"]
学如逆水行舟,不进则退!
事不三思终有败,人能百忍则无忧。
越牛逼的人越谦虚,越没本事的人越装逼。
是狼就要磨好牙,是羊就要练好腿。