题目一
问题:这段代码输出结果是什么?
const test = (array, i, j) => {
for(; i<j; i++, j--){
array[i] += array[j] // array[i] = array[i] + array[j]
array[j] = array[i] - array[j] // array[j] = array[i] + array[j] - array[j] = array[i]
array[i] = array[i] - array[j] // array[j] = array[i] + array[j] - array[i] = array[j]
}
}
const arr = [-4, -3, -2, -1, 0, 0, 1, 2, 3, 4]
test(arr, 0, arr.length - 1)
console.log(arr.join(',')); // 4,3,2,1,0,0,-1,-2,-3,-4
分析:
根据代码中的注释可以看出,这个函数的主要目的是为了交换变量,即第一位的 -4 与末位的 4 交换,所以最终的结果为 4,3,2,1,0,0,-1,-2,-3,-4
题目二
问:这段代码的输出结果是什么?
class Hello{
static main() {
const str = 'here welcome hello'
const out = []
const arr = str.split(' ').reverse().join(' ').split(' ')
// split分割,reverse反转,join拼接
// 将字符串以空格分割为数组,然后反转数组,再以空格拼接为新的字符串,最后又以空格分割
const len = arr.length // 数组长度:3
console.log(len);
for(let i = 0; i<len; i++) {
out.push(arr[i].charAt(0).toUpperCase() + arr[i].split(1))
// arr[i].charAt(0).toUpperCase():获取每个单词的第一个字符并转换为大写
// arr[i].split(1):获取每个单词的剩余字符
// 将每个单词的第一个字符和剩余字符拼接起来,然后添加到out数组中
}
console.log(out.join('_')) // 结果为 Hhello_Wwelcome_Hhere
// 将out数组中的每个单词用_拼接起来
}
}
Hello.main()
分析:看到这段代码就可以发现,里面出现了很多的数组方法,它整体考查的还是很简单的,只要对这些数组方法比较熟悉,就可以很快知道答案。
依据代码中的注释,就可以知道大致的思路,而最终结果就是 Hhello_Wwelcome_Hhere 。