我需要编写一个函数,该函数接受一个字符串并以整数形式返回输入中的第二高数字位,并且还遵循一些规则,但我无法使其正常工作。这是我到目前为止所拥有的:
secondHighestDigit = function(input) {
// Your code goes here
var nr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
var found_nr = [];
var max = 0;
var bmax = 0;
for (var i = 0; i < 10; i++)
for (var j = 0; j < input.length; j++) {
if (nr[i] = input[j]) {
found_nr.push(nr[i]);
}
}
found_nr.sort();
k = found_nr.length;
return found_nr[k - 2];
};
console.log(secondHighestDigit("123123"));
secondHighestDigit(“ 123123”)应该返回 3
答案 0 :(得分:1)
尝试以下操作:
secondHighestDigit = function(input){
var nums = [];
for(var i = 0; i < input.length; i++){
nums.push(parseInt(input[i]));
}
nums.sort();
return nums[nums.length-2];
};
console.log(secondHighestDigit("123123"));
答案 1 :(得分:1)
我有这个答案:
secondHighestDigit = function(input) {
// Your code goes here
let newArray = [];
for (let char of input) {
if (!isNaN(char)) {
if (!(char in newArray)) {
newArray.push(parseInt(char));
}
}
}
return newArray.sort()[newArray.length - 2]
};
console.log(secondHighestDigit("123123adsb"));
我创建一个新数组。我循环通过每个字符。如果字符是数字,请继续。 (isNaN检查它是否不是数字。我想要相反的数字,所以我使用!!)
如果该值不在newarray中,则将其推(添加)到数组中
对数组进行排序,在数组的长度为2的位置获取数组的索引。
let是ES6 JavaScript变量名称。它比var更易于使用。如果您是为较新的浏览器(而不是IE)开发的,则应使用它。
答案 2 :(得分:0)
我认为您的意思是该函数应返回2,因为这是列表中第二的最高数字,而不是3?
对@ A.J Uppal的代码段进行小的调整就是:
secondHighestDigit = function(input){
var nums = [];
for(var i = 0; i < input.length; i++){
if(nums.indexOf(parseInt(input[i])) === -1)
nums.push(parseInt(input[i]));
}
nums.sort();
return nums[nums.length-2];
};
console.log(secondHighestDigit("123123"));