-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmutableAPI.js
More file actions
154 lines (124 loc) · 3.61 KB
/
mutableAPI.js
File metadata and controls
154 lines (124 loc) · 3.61 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//添加和删除元素API
const stack = ["A", "B"];
// console.log(stack.pop())
console.log(stack.push("C","D","e"));
console.log(stack);
const queue = ["B", "C"];
// console.log(queue.unshift("A","B","C"));
console.log(queue.shift());
console.log(queue);
const numbers = [1, 2, 5];
console.log(numbers.splice(0, 3, 7, 8, 9));
const nums = [1, 10, 2, 5];
// 错误做法:
nums.sort();
console.log(nums)
// 正确做法:
// nums.sort((a, b) => a - b); // 升序:[1, 2, 5, 10]
nums.sort((a, b) => b - a);
console.log(nums)
nums.reverse();
console.log(nums)
const fruits = ["banana", "apple", "cherry"];
fruits.sort();
console.log(fruits); // ["apple", "banana", "cherry"]
const words = ["河", "波", "多"];
// 使用 localeCompare,按拼音/字母顺序排
words.sort((a, b) => a.localeCompare(b));
console.log(words); // ["波", "多", "河"] (B -> D -> H)
const files = ["v1.js", "v10.js", "v2.js"];
// 错误排序:["v1.js", "v10.js", "v2.js"]
files.sort();
console.log(files)
// 聪明排序:["v1.js", "v2.js", "v10.js"]
files.sort((a, b) => a.localeCompare(b, undefined, { numeric: true }));
console.log(files)
//r如何自定义排序,比如对国际音标的高低
const wubiMap = { "河": "iskg", "波": "ihcy", "多": "qqkk" };
const queque2 = ["河", "波", "多"];
words.sort((a, b) => wubiMap[a].localeCompare(wubiMap[b]));
console.log(queque2);
// 声明函数
// 传统函数声明
function greet(username) {
return `Hello,${username}!`
// return "你好," + username + "!";
}
// 调用函数
let message = greet("小明");
console.log(message); // 输出: 你好,小明!
//箭头函数
// const hello = (username) => {
// return `Hello,${username}!`
// }
// console.log(hello("xiaomao"))
//简写版本
const hello = (a) => `hello,${a}!`;
console.log(hello("xiaomao"));
//对象与数组之间的转换
const myObj = {
"100": "我是100",
"name": "负里",
"1": "我是1",
"age": 23,
"0": "我是0"
};
console.log(Object.keys(myObj));
console.log(Object.values(myObj));
//数组和对象的转换练习
//练习1
const fitnessData = {
Monday: 250,
Tuesday: 450,
Wednesday: 320,
Thursday: 150,
Friday: 500
};
//解构法
const fit = Object.entries(fitnessData);
const highFit = fit.filter(([day, calorie]) => calorie > 300); // 直接拿值比对
const nameOnly = highFit.map(([day]) => day); // 只要第一个零件
// console.log(fit);
// const highFit = fit.filter(item => {
// //item是 ['Monday', 250]
// //item[o]是key Monday
// //item[1]是value 250
// return item[1] > 300;
// })
// console.log(highFit);
// const nameOnly = highFit.map(item => {
// return item[0];
// });
// console.log(nameOnly);
//练习2
const researchData = [
["河", 120],
["波", 150],
["多", 90]
];
const obData = Object.fromEntries(researchData);
console.log(obData);
const directData = {...obData};
console.log(directData);
//这两个输出结果是一样的???
//练习3
const liqiSnacks = {
"冻干": 60,
"罐头": 15,
"小鱼干": 10
};
// const newSnacks = Object.entries(liqiSnacks);
// console.log(newSnacks);
// const zhangJia = newSnacks.map(item => {
// item[1] += 5
// return item;
// });
// console.log(zhangJia);
// const finalSnacks = Object.fromEntries(zhangJia);
// console.log(finalSnacks);
const finalSnacks = Object.fromEntries(Object.entries(liqiSnacks).map(([name, price]) => [name, price +5]));
console.log(finalSnacks);
//拆开对象
const wordInfo = { word: "河", duration: 120, location: "苏州", change: true };
const { word, change } = wordInfo;
console.log(`${word}是例字,发生了${change}变化`)