此功能有什么问题?不返回我指定的内容

时间:2019-09-10 20:35:58

标签: javascript function return typeof

该函数需要检查数组是否有数字,并返回第一个和最后一个数字。如果数组为空,则应返回两个零[0,0]的数组,如果数组的第一个或最后一个元素不是数字,则还应返回两个零。我完成了一个功能,但无法正常工作。

完成一个功能。

function checkArrEl(arr) {
    let result = [];

    if ((arr.length == 0 ) || (typeof arr[0] || typeof arr[arr.length-1] !== 'number')) {
        result = [0,0];
    } else result.push(arr.shift(), arr.pop())

    return result;
}
  console.log(checkArrEl(['a',1,2,3,4,'b']));
  console.log(checkArrEl([]))
  console.log(checkArrEl([1,2,3,4,5]));

1 个答案:

答案 0 :(得分:0)

我假设如果数组的最后一个元素的第一个不是[c]类型,则期望+返回true。

第一个(typeof arr[0] || typeof arr[arr.length-1] !== 'number')没有与之配对的比较运算符。在number的情况下,您的表达式的计算结果为typeof,它每次都会评估真实性。

给第一个arr=['a',1,2,3,4,'b']一个比较运算符,以便您的逻辑正确评估。以下if语句可能更适合您。

'string' || false

控制台现在记录:

typeof