Discuss / JavaScript / 作业

作业

Topic source

风lpc

#1 Created at ... [Delete] [Delete and Lock User]
function product(arr) {
    return arr.reduce((x, y) => x * y);
}

function string2int(s) {
    return s.split('').map(x => x * 1).reduce((x, y) => x * 10 + y * 1);
}


function normalize(arr) {
    return arr.map(x => x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase())
}

参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map, 回调函数有三个参数

currentValue
The current element being processed in the array.
index
The index of the current element being processed in the array.
array
The array map was called upon.

故实例中的函数调用为

parseInt("1", 0, ["1", "2", "3"])  // 1  
parseInt("2", 1, ["1", "2", "3"])  // NaN  
parseInt("3", 2, ["1", "2", "3"])  // NaN

改为

r = arr.map(x => x * 1);

风lpc

#2 Created at ... [Delete] [Delete and Lock User]

截取廖老师给出的答案

  • parseInt('0', 0); // 0, 按十进制转换

  • parseInt('1', 1); // NaN, 没有一进制

  • parseInt('2', 2); // NaN, 按二进制转换不允许出现2

而我的是

parseInt("1", 0, ["1", "2", "3"]) // 1
parseInt("2", 1, ["1", "2", "3"]) // NaN
parseInt("3", 2, ["1", "2", "3"]) // NaN

其实是一样的,原因见于廖老师在函数定义和调用一节中所说:

由于JavaScript允许传入任意个参数而不影响调用,因此传入的参数比定义的参数多也没有问题,虽然函数内部并不需要这些参数

boanshi

#3 Created at ... [Delete] [Delete and Lock User]

写的不错,简洁明了的代码


  • 1

Reply