【问题标题】:parseInt last number and save as variableparseInt 最后一个数字并保存为变量
【发布时间】:2016-02-22 16:26:12
【问题描述】:

我想将两个不同的值保存为图像计数器类中的两个变量,例如:

<div class="counter">33 / 111</div> 

33是当前图像的数量。

总共有 111 张图片。

我可以使用 parseInt 获取第一个值并将其保存在变量中。

$(document).ready(function(){


    var sc=$('.counter').text();

    sc=parseInt(sc);
    alert(sc);


});

但是我怎样才能得到最后一个数字(图像总数 = “111”)并将其放入另一个第二个变量中?

var x=$('.counter').text();

    x=???parseInt(x)+???;//get the last Number (111)
    alert(x); //x=111

【问题讨论】:

  • 也许您可以以某种方式将字符串与分隔符分开。我会调查那个策略。
  • 转念一想,不要调查任何事情,这不值得。您已经为您在 JavaScript 101 中找到了三个答案。哦,我们跌得多么低。

标签: javascript jquery parseint


【解决方案1】:

首先,不要使用parseInt() 来获取第一个值。使用split() 将值放入数组中,然后您可以从数组中获取它们,如下所示:

var values = $('.counter').text().split('/');

然后要将它们放入单独的变量中,您可以简单地引用数组的相关索引:

var firstValue = values[0];
var secondValue = values[1];

注意


上述解决方案会从 div 中返回字符串值,所以如果你真的需要它们作为整数,你可以像这样用parseInt() 单独转换它们:

var firstValue = parseInt(values[0]);
var secondValue = parseInt(values[1]);

或者您可以在分配 firstValuesecondValue 变量之前将整个数组转换为整数,而不必在声明中使用 parseInt(),如下所示:

var values = $('.counter').text().split('/').map(Number);

另一个注释


如果您使用 JavaScript 的新 ES6 规范(其中包含大量好东西),您实际上可以将其作为一个非常巧妙的单行代码来执行,如下所示:

let [firstValue, secondValue] = $('.counter').text().split('/').map(Number);

【讨论】:

  • 不要忘记 parseInt(values[n]) 以确保它返回一个数字而不是一个字符串 :)
  • @jjr2000,感谢您指出这里的投票不合理。这实际上对提问者不利,因为他们想要一个数字作为输出。认识新的 Stack Overflow:对坏问题的错误答案™。
  • @FrédéricHamidi 显然你没有注意到 OP 没有提到他们实际上想用这些值做什么。就我们所知,OP wants 字符串,而不是整数。我会让他们做出决定,而不是强加给他们。 OP 只询问如何获得这些值 - 这个答案(实际上还有其他答案)为他们提供了他们真正需要的东西。随时提供您自己的“Good Answer™”。
  • 还有@jjr2000,感谢您提及parseInt()。我会更新我的答案以包括它。 :-)
  • @jeff,显然你没有注意到提问者在他们的代码中使用了parseInt()。无论如何,如果他们真的没有提及他们真正想用这些值做什么,那么问题就不清楚了,应该关闭,而不是回答。回复:你的最后一句话,我确实试图引导提问者找到 cmets 中的可能解决方案,就像我通常对此类琐碎、无研究的问题所做的那样。我不回答他们,我认为这是最好的。祝你有美好的一天。
【解决方案2】:

如果文本总是“数字/数字”,你可以像这样提取最后一个数字:

lastNumber = +(x.split('/')[1].trim());

split 创建一个数组,[1] 返回该数组中的第二个成员,trim 删除字符串周围的空格。最后,表达式前面的+ 将值转换为数字。

【讨论】:

    【解决方案3】:

    RegExes 是一种选择,但更基本的方法是这样的:

    var totalNum = parseInt(x.substr(x.indexOf('/') + 1));
    var pageNum = parseInt(x);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多