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