js数据处理——遍历

314 阅读1分钟

数组的遍历

for

const arr = [1, 2, 3];
for (let i = 0, length = arr.length; i < length; i++) {
    console.log(i);
}

// 1
// 2
// 3

Array.prototype.forEach(遍历每一项,无法中途退出循环)

const arr = [1, 2, 3];
arr.forEach((item) => {
    console.log(item);
})

// 1
// 2
// 3

Array.prototype.map(返回每项加工过后的新数组)

const arr = [1, 2, 3];
let newArr = arr.map((item) => {
    return item + 1;
});
console.log(newArr);

// [2, 3, 4]

Array.prototype.filter(返回符合条件的值组成的新数组)

const arr = [1, 2, 3];
let newArr = arr.filter((item) => {
    return item > 1;
});
console.log(newArr);

// [2, 3]

Array.prototype.reduce(用于累加,参数1:上次累加的结果,参数2,当前项,返回累加结果)

const arr = [1, 2, 3];
let sum = arr.reduce((prev, item) => {
    return prev + item
});
console.log(sum);

// 6

Array.prototype.some(返回数组中是否有满足条件的项)

const arr = [1, 2, 3];
let res = arr.some((item) => {
    return item > 1;
});
console.log(res);

// true

Array.prototype.every(返回数组的每一项是否都满足条件)

const arr = [1, 2, 3];
let res = arr.every((item) => {
    return item > 1;
});
console.log(res);

// false

Array.prototype.indexOf(返回某一项在数组中的下标)

const arr = [1, 2, 3];
let index = arr.indexOf(2);
console.log(index);

// 1

Array.prototype.lastIndexOf(逆向查找,返回某一项在数组中的下标)

const arr = [1, 2, 3];
let index = arr.lastIndexOf(2);
console.log(index);

// 1

for...in(只能遍历下标)

const arr = [1, 2, 3];
for (let index in arr) {
    console.log(index);
}

// 0
// 1
// 2

for...of(遍历每一项)

const arr = [1, 2, 3];
for (let index of arr) {
    console.log(index);
}

// 1
// 2
// 3

对象的遍历

for...in

const obj = {No: 1, Name: 'Lerry', Handsome: true};
for (let key in obj) {
    console.log(key, obj[key]);
}

// No 1
// Name Lerry
// Handsome true

Object.keys()

const obj = {No: 1, Name: 'Lerry', Handsome: true};
let keysArr = Object.keys(obj);
console.log(keysArr);

// ["No", "Name", "Handsome"]

Object.values()

const obj = {No: 1, Name: 'Lerry', Handsome: true};
let valuesArr = Object.values(obj);
console.log(valuesArr);

// [1, "Lerry", true]

Object.entries()

const obj = {No: 1, Name: 'Lerry', Handsome: true};
for (let [key, value] of Object.entries(obj)) {
    console.log(key, value);
}

// No 1
// Name Lerry
// Handsome true