萌新有个疑问求助!!!关于数组和splice函数的问题
javascript吧
全部回复
仅看楼主
level 3
HsY1. 楼主
代码如上!
2020年04月24日 14点04分 1
level 3
HsY1. 楼主
这是输入一串数字,由空格隔开。然后删掉数组中最大值和最小值后,计算其余下平均分。
2020年04月24日 14点04分 2
level 3
HsY1. 楼主
但只要数组中出现个数,他就会删错最小值
2020年04月24日 14点04分 3
level 3
HsY1. 楼主
像这样将 2 改为 02就运行正确。
2020年04月24日 14点04分 4
level 3
HsY1. 楼主
求助啊!!!!!什么原因[泪]
2020年04月24日 14点04分 5
level 3
交易先排序,再做计算
2020年04月24日 16点04分 6
level 1
数组存储的分数是string类型,系统按string类型比较大小。
2020年04月24日 20点04分 7
不对我试过了……现在改好了,很莫名其妙。把上面max=numberArray[],括号里的数字改成一个更大的值,例如100000000000000,他就不会算错数[笑尿]
2020年04月25日 03点04分
你是对的,加个Number()直接就改好了
2020年04月25日 04点04分
level 12
var numlist = prompt('分数表:', '请输入分数,用空格(space)分割');
var numberArray = numlist.split(' ');
document.write('你输入的分数为:' + numberArray);
var x, max = numberArray[0], min = numberArray[0];
for (x in numberArray) {
// 转一下数字类型在比较 转一个也行 数字和字符串比较 会先把字符串转成数字在比较
if (Number(numberArray[x]) > max) {
max = numberArray[x];
}
if (Number(numberArray[x]) < min) {
min = numberArray[x];
}
}
var maxnum = numberArray.indexOf(max);
numberArray.splice(maxnum, 1);
var minnum = numberArray.indexOf(min);
numberArray.splice(minnum, 1);
var avg = 0;
var sum = 0;
for (i = 0; i < numberArray.length; i++) {
sum += Number(numberArray[i]);
}
avg = sum / numberArray.length;
document.write('<br />成绩平均数:' + avg);
console.log('删除最大最小后的分数' + numberArray, '最大分数:' + max, '最小分数:' + min); // 输出一下大小分数
2020年04月25日 03点04分 9
现在改好了,很莫名其妙。把上面max=numberArray[],括号里的数字改成一个更大的值,例如100000000000000,他就不会算错数[笑尿]
2020年04月25日 03点04分
@HsY1. 你是没把 我注释说的 看了 你看我截的截图吧 你就明白了 还有你所说的 [黑线]
2020年04月25日 04点04分
@HsY1. 在 10楼 [乖]
2020年04月25日 04点04分
@丶影-奈斯 好!我学一下
2020年04月25日 04点04分
level 12
2020年04月25日 04点04分 10
1