遍历方法

73次阅读

共计 2028 个字符,预计需要花费 6 分钟才能阅读完成。

有用到 object 对象的转换成数组,然后又想到了遍历方法,所以,也想记录下
1. 终止或者跳出循环

break 跳出循环体, 所在循环体已结束
continue 跳出本次循环,进行下一次循环,所在的循环体未结束
return 终止函数执行

for (let i = 0; i < 5; i++) {
if (i == 3) break;
console.log(“The number is ” + i);
/* 只输出 0,1,2,到 3 就跳出循环了 */
}
for (let i = 0; i <= 5; i++) {
if (i == 3) continue;
console.log(“The number is ” + i);
/* 不输出 3,因为 continue 跳过了,直接进入下一次循环 */
}
2. 遍历方法
假数据
const temporaryArray = [6,2,3,4,5,1,1,2,3,4,5];
const objectArray = [
{
id: 1,
name: ‘d’
}, {
id: 2,
name: ‘d’
}, {
id: 3,
name: ‘c’
}, {
id: 1,
name: ‘a’
}
];
const temporaryObject = {
a: 1,
b: 2,
c: 3,
d: 4,
};
const length = temporaryArray.length;
普通 for 循环遍历
for(let i = 0; i < length; i++) {
console.log(temporaryArray[i]);
}
for in 循环
/* for in 循环主要用于遍历普通对象,
* 当用它来遍历数组时候,也能达到同样的效果,
* 但是这是有风险的,因为 i 输出为字符串形式,而不是数组需要的数字下标,
* 这意味着在某些情况下,会发生字符串运算,导致数据错误
* */
for(let i in temporaryObject) {
/* hasOwnProperty 只加载自身属性 */
if(temporaryObject.hasOwnProperty(i)) {
console.log(temporaryObject[i]);
}
}
for of 循环,用于遍历可迭代的对象
for(let i of temporaryArray) {
console.log(i);
}
forEach 第一个值为数组当前索引的值,第二个为索引值,只能遍历数组,无返回值,也无法跳出循环
let a = temporaryArray.forEach(function(item, index) {
console.log(index, item);
});
map 返回新数组,只能遍历数组
temporaryArray.map(function(item) {
console.log(item);
});
filter 是数组的内置对象,不改变原数组,有返回值
temporaryArray.filter(function(item) {
console.log(item%2 == 0);
});
some 判断是否有符合的值
let newArray = temporaryArray.some(function(item) {
return item > 1;
});
console.log(newArray);
every 判断数组里的值是否全部符合条件
let newArray1 = temporaryArray.every(function(item) {
return item > 6;
});
console.log(newArray1);
reduce(function(accumulator, currentValue, currentIndex, array) {}, initValue)
accumulator:初始值或者累加计算结束后的返回值,currentValue 遍历时的当前元素值,currentIndex 当前索引值,array 当前数组 initValue 为初始值,若不添加参数 initValue,则 accumulator 为当前数组的第一个元素值,若添加,则 accumulator 为 initValue 值,累加器 accumulator 从 initValue 开始运算
let temporaryObject3 = {};
let newArray2 = objectArray.reduce(function(countArray, currentValue) {
/* 利用 temporaryObject3 里存放 id 来判断原数组里的对象是否相同,若 id 相同,则继续下一步,不同则将该对象放入新数组中
* 则 countArray 为去重后的数组
* */
temporaryObject3[currentValue.id] ? ” : temporaryObject3[currentValue.id] = true && countArray.push(currentValue);
return countArray;
}, []);
console.log(newArray2);
正在努力学习中,若对你的学习有帮助,留下你的印记呗(点个赞咯 ^_^)

往期好文推荐:

判断 ios 和 Android 及 PC 端
实现文字的省略号
css 实现波浪线及立方体

正文完
 0