2016-01-06 58 views
-4

我只是想比较使用javascript正确的数字和左侧的数字编号,这是我的输入样本比较使用Javascript

290|0 
290|0 
290|2902 
250|0 
250|0 
0|0 
0|1299.95 
0|1299.95 
250|0 
290|0 
290|0 
290|22 
32|1299.95 
0|0 

那么结果是更大的数字:

290 
290 
2902 
250 
250 
0 
1299.95 
1299.95 
250 
290 
290 
290 
1299.95 
0 

请帮帮忙!

+0

如果right_number == left_number – AshBringer

+0

所以,你需要比较数字,你的问题是什么? '290 | 0'不是JS中的数据类型,你有什么样的数据?你需要什么类型的结果? – Teemu

+0

Math.max(num1,num2); ??? – user7

回答

3

这里是如何做到这一点的很长的路的最大数量: -

var input = '290|0\n\ 
290|0\n\ 
290|2902\n\ 
250|0\n\ 
250|0\n\ 
0|0\n\ 
0|1299.95\n\ 
0|1299.95\n\ 
250|0\n\ 
290|0\n\ 
290|0\n\ 
290|22\n\ 
32|1299.95\n\ 
0|0' 

var rows = input.split('\n') 
var output = [ ] 

for (var i = 0; i < rows.length; ++i) { 
    var row = rows[i] 
    var parts = row.split('|') 
    if (1*parts[0] > 1*parts[1]) 
     output.push(parts[0]) 
    else 
     output.push(parts[1]) 
} 
output = '\n'.join(output) 
+0

谢谢@Fred –

+0

Hi @Fred我有一个问题,'32 | 1299'结果'32'和'290 | 1299.95'结果'290' https://jsfiddle.net/1g0q0p9q/ –

+0

你是对的@Ph!我正在比较字符串,'3'是'1'。我编辑了我的答案,强制数字而不是字符串比较。 –