首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换数据计算

转换数据计算
EN

Stack Overflow用户
提问于 2021-12-25 19:13:09
回答 1查看 98关注 0票数 1

祝您假期愉快,谢谢您的帮助

我已经尽力解决了我的问题,但是我没有给出足够的信息,我会尝试重新制定它。

我要输出的是这些数字

代码语言:javascript
复制
input 14:1   output 141 
input 13:8   output 141
input 13:18   output 241 
input 18:13   output 291 

计算如下:输入14:1 4+1不大于9,所以数字1是其余的,我们把它留在末尾,然后在输出141之前加上14。

输入13:8 3+8大于9 (11),所以我将其中1:3变成4,1是我们在最后输出时添加的其余部分。

代码语言:javascript
复制
input 13:18   output 241 
input 18:13   output 291 

试图帮助我这里是一个例子代码,他们感谢一个来自德国的女人。

代码语言:javascript
复制
const
    fn = string => {
        const
            sum = (a, b) => (a + b).toString().padStart(2, 0).split(''),
            [a, b] = string.split(':').map(s => s.padStart(2, 0)),
            result = [];
 
        let i = 2;
        while (i--) {
            const sum = +a[i] + +b[i];
            result[i] = sum > 10
                ? +[+a[i] + Math.floor(sum / 10), sum % 10].join('')
                : sum === 10 ? 1 : sum;
        }
        return result.join('');
    };
    
 
console.log(fn('13:18')); // I want 241 correct output 241
console.log(fn('18:13')); // I want 291 correct output 291

console.log(fn('13:15')); //  I want 28 correct output 28
console.log(fn('15:13')); //  I want 28 correct output 28

console.log(fn('14:1')); // I want 141 bad output   15
console.log(fn('13:8')); // I want 141 correct output 141
console.log(fn('78:96')) // I want 174 bad output   "8694"

这段代码计算了一些结果是正确的,有些是不正确的。

如果小于10 console.log (fn ('14: 1 '));//我希望这141个输出/给出一个糟糕的输出"15“

EN

回答 1

Stack Overflow用户

发布于 2021-12-25 20:24:08

根据您所解释的逻辑,并假设数字最大为2长度。

P.S. +(加号)前缀将字符串转换为整数运行时。

第一解=>

代码语言:javascript
复制
const fn = (string) => {
      const [a,b] = string.split(':').map(s=>s.padStart(2,0)), result=[];
      // for first position
      result[0] = +a[0] + +b[0];
      // for second position
      let secondIndexTotal =  (+a[1] + +b[1]).toString();

      result[1] = +secondIndexTotal > 9 ? (+a[1] + 
      +secondIndexTotal[0]).toString() + secondIndexTotal[1] : a[1]+b[1];

      return result.join('');
}

console.log(fn('13:18')); // output 241
console.log(fn('18:13')); // output 291

console.log(fn('13:15')); // output 235
console.log(fn('15:13')); // output 253

console.log(fn('14:1')); // output 141
console.log(fn('13:8')); // output 141

更新解决方案=>

代码语言:javascript
复制
const fn = (string) => {
  const [a, b] = string.split(":").map((s) => s.padStart(2, 0)),
    result = [];
  // for second position
  const secondIndexTotal = (+a[1] + +b[1]).toString();

  result[1] = +secondIndexTotal > 9 ? secondIndexTotal[1] : b[1];

  // for first position
  const firstIndexTotal = +a[0] + +b[0];
  result[0] =
    firstIndexTotal > 9
      ? firstIndexTotal + (+secondIndexTotal > 9 ? +secondIndexTotal[0] : 0)
      : firstIndexTotal.toString() +
        (+a[1] + (+secondIndexTotal > 9 ? +secondIndexTotal[0] : 0));

  return result.join("");
};
console.log(fn("13:18")); // output 241
console.log(fn("18:13")); // output 291
console.log(fn("78:96")); // output 174
console.log(fn("14:1")); // output 141
console.log(fn("13:15")); // output 235
console.log(fn("15:13")); // output 253

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70482182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档