js-6 取近似值,合并表记录

247 阅读1分钟

www.nowcoder.com/practice/3a…

取近似值:

var line;
while(line=readline()){
 let len = line.indexOf('.')
 var str1 = parseInt(line.slice(len+1,len+2))
 var str2 = parseInt(line.slice(0,len))
 if(str1>=5){
    console.log(str2+1)
 }else{
     console.log(str2)
 }
}

合并表记录:

www.nowcoder.com/practice/de…

var line,index=0,arr=[],size;
var map = new Map()
while(line=readline()){
    if(line.indexOf(' ')!=-1){
        var len = line.indexOf(' ')
        var line1 = line.slice(0,len)
        var line2 = parseInt(line.slice(len+1))
        if(!map.has(line1)){
            map.set(line1,line2)
        }else{
            map.set(line1,map.get(line1)+line2)
        }
        }
}
arr=Array.from(map)
arr.sort((a,b)=>{return a[0]-b[0]})
for(let i =0;i<arr.length;i++){
    console.log(arr[i].join(' '))
}

第二个题对于我自己来说收益挺大的。用到了map对象。

Map:

Map是一组键值对的结构,具有极快的查找速度。

Map:key-value,超级快!new Map() map.set() map.has() map.get() map.delete()

Set:一定不会重复的集合 new Set() set.add() set.delete()

还有一个二维数组的排序sort(),对第一个元素进行升序排序就是a[0]-b[0]