JS学习笔记

for循环练习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//1
for (let i = 1; i <= 10; i++) {
if (i % 2 === 0){
console.log(i)
}
}
//2
let num = [3, 6, 9, 12]

for (let s = 0; s < num.length; s++) {
console.log(num[s]*2)
}
//3
let num = [10, 20, 30]
let sum = 0

for (let s = 0; s < num.length; s++) {
sum = sum + num[s]
}

console.log(sum)

//4
let arr = [3, 7, 2, 9, 4]
let count = 0

for (let s = 0; s < arr.length; s++) {
if (arr[s] >5 ) {
count++
}
console.log(count)

filter 与 Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
let products =[

{ title: "Book", stock: 10},
{ title: "Pen", stock: 0},
{ title: "Bag", stock: 3}
]

let result = products
.filter(p => p.stock > 0)
.map(p => p.title)

console.log(result)



let logs = [
{ level: "error", msg: "fail"},
{ level: "info", msg: "ok"},
{ level: "error", msg: "fail"},
{ level: "error", msg: "fail"},
{ level: "info", msg: "ok"}
]

let infos = logs.filter(l => l.level === "info")
console.log(infos)

find some every

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
let users = [
{ name: "Tom", age: 15 },
{ name: "Jack", age: 18 },
{ name: "Tom", age: 22 }
]
let adult = users.find(i => i.age >= 18)
console.log(adult)

let products = [
{ title: "Book", stock: 10 },
{ title: "Pen", stock: 0 },
{ title: "Bag", stock: 5 }
]

let output = products.some(i => i.stock === 0)
console.log(output)

let nums = [12, 18, 20, 30]

let even = nums.every(i => i % 2 === 0)

reduce

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
let orders = [
{ id: 1, paid: true },
{ id: 2, paid: false },
{ id: 3, paid: true },
{ id: 4, paid: false }
]
let add = orders.reduce((a,b) => {
if (b.paid) {
a.paid++
} else {
a.unpaid++
}
return a
},{
paid: 0,
unpaid: 0
})
console.log(add)


let users = [
{ name: "Tom", age: 15},
{ name: "Jack", age: 22},
{ name: "Lucy", age: 18},
{ name: "Ben", age: 12}
]
let obj = users.reduce((a, b) => {
if (b.age >= 18) {
a.adult.push(b.name)
}else {
a.minor.push(b.name)
}
return a
}, {
adult: [],
minor: []
})
console.log(obj)

sort

1
2
3
4
5
6
7
8
9
10
let students = [
{ name:'小明', score: 85 },
{ name:'小红', score: 92 },
{ name:'小刚', score: 78 }
];

let paixu = students.sort((a, b) => b.score - a.score)
.map(({name}) => name);

console.log(paixu);

闭包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function createPowerSource() {
// 这是被保护的能量,外部看不见
let energy = 100;

// 返回一个对象
return {
use: function() {
energy = energy - 10; // 直接操作函数作用域里的 energy
console.log(`消耗10点,剩余:${energy}`);
},

charge: function() {
energy = energy + 20;
console.log('增加: ${energy}$')
}
};
}