Eloquent JavaScript 05 Exercises
高阶函数
记录一下这本书的习题的答案,这是第五章的练习。
Flattening
将包含数组的数组展开,即只有一对中括号的数组。
1 | let arrays = [[1, 2, 3], [4, 5], [6]]; |
Your own loop
如果不能满足条件(testAct)就不能继续循环。下一次循环要用新的值(updateAct),每次循环需要执行一定的操作(bodyAct)。
1 | // Your code here. |
Everything
判断数组中所有元素是否都满足一定的条件,和some函数相反。
1 | function every(array, test) { |
Dominant writing direction
找出文字中最主要的读法方向。
1 | function dominantDirection(text) { |
这是countBy
,作用是返回数组中满足要求的数量,groupName作为函数名称调用,返回属于当前item所属于的组名称,在这里有两个组别,分别是true组和false组,然后将所在组的数量加1:
1 | function countBy(items, groupName) { |
这是characterScript
,作用是判断code属于哪一种语言。1
2
3
4
5
6
7
8
9
10
11
12
13function characterScript(code) {
for (let script of SCRIPTS) {
if (script.ranges.some(([from, to]) => {
return code >= from && code < to;
})) {
return script;
}
}
return null;
}
console.log(characterScript(121));
// → {name: "Latin", …}
SCRIPTS
类型的格式:1
2
3
4
5
6
7
8{
name: "Coptic",
ranges: [[994, 1008], [11392, 11508], [11513, 11520]],
direction: "ltr",
year: -200,
living: false,
link: "https://en.wikipedia.org/wiki/Coptic_alphabet"
}