Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
10天的Javascript-第3天:数组-HackerRank_Javascript_Node.js - Fatal编程技术网

10天的Javascript-第3天:数组-HackerRank

10天的Javascript-第3天:数组-HackerRank,javascript,node.js,Javascript,Node.js,好的,我在学习Javascript,用HackerRank的10天Javascript,我在第3天:这包括数组问题。 当前的问题包括从两个输入返回第二高的值,第一个是数组中的项目数量,第二个是将保存在“nums”数组中的值数量。 我是用下面的代码编写的,但只使用下面的输入案例,如果我对不同的输入尝试相同的代码(见结尾),它会返回“错误答案”。 在这里,您可以阅读有关该问题的更多信息: 但是,当我用以下输入尝试相同的代码时,我得到了“错误答案” 有什么解释或建议吗?您只需要对数字进行排序并获得第二

好的,我在学习Javascript,用HackerRank的10天Javascript,我在第3天:这包括数组问题。 当前的问题包括从两个输入返回第二高的值,第一个是数组中的项目数量,第二个是将保存在“nums”数组中的值数量。 我是用下面的代码编写的,但只使用下面的输入案例,如果我对不同的输入尝试相同的代码(见结尾),它会返回“错误答案”。 在这里,您可以阅读有关该问题的更多信息:

但是,当我用以下输入尝试相同的代码时,我得到了“错误答案”


有什么解释或建议吗?

您只需要对数字进行排序并获得第二个索引。 遵循代码

function getSecondLargest(nums) {
   nums.sort((a, b) => {
     return b - a;
   }); 
   return nums[1]  
}

function getSecondLargest(nums) {
  nums.sort((a, b) => Math.sign(b - a));
  return nums[1]  
}

console.log(getSecondLargest([1,2,3,4,5,6,7,8,9,10]));
问题在于
sort()
函数。javascript的
sort()
方法将按以下方式对整数数组进行排序

[1,10,2,3,4,5,6,7,8,9]
您需要使用以下方法对其进行排序

nums = nums.sort(function(a,b) {
       return (+a) - (+b);
    });

排序问题已被询问

请查看关于张贴代码和相应问题的指南。理想情况下,从示例中删除所有与输入相关的代码,并使用硬编码输入显示故障。此外,显示的代码中没有任何内容可以打印“错误答案”文本-最好确保您看到的输出/错误消息与帖子中的代码输出相匹配。嗨,我遇到了相同的问题,但我使用了不同的技术。我首先对数组进行排序,然后使用Set使数组具有唯一的元素。然后我记录了最后的第二个元素。从逻辑上讲,它应该是有效的。下面是我代码中的fiddle链接:我在hackerrank中没有定义,但它在fiddle中正常工作。在hackerrank中,我得到了结果,但未定义。
function getSecondLargest(nums) {
   nums.sort((a, b) => {
     return b - a;
   }); 
   return nums[1]  
}

function getSecondLargest(nums) {
  nums.sort((a, b) => Math.sign(b - a));
  return nums[1]  
}

console.log(getSecondLargest([1,2,3,4,5,6,7,8,9,10]));
[1,10,2,3,4,5,6,7,8,9]
nums = nums.sort(function(a,b) {
       return (+a) - (+b);
    });