使用javascript检查数百万人组

使用javascript检查数百万人组,javascript,Javascript,这里我返回一个数组,其中的值被格式化为 var myObj = { "account": "5622555", "account1": "156726", "account3": "889338", etc.... } 然后我格式化这个数组并将值分配给HTMLdiv,下面是我使用的代码 $.each(myObj, function(index, value){ $("#account" + index).html(value); }); 如何更改值以百

这里我返回一个数组,其中的值被格式化为

var myObj = {
    "account": "5622555",
    "account1": "156726",
    "account3": "889338",
    etc....
}
然后我格式化这个数组并将值分配给HTMLdiv,下面是我使用的代码

$.each(myObj, function(index, value){
    $("#account" + index).html(value);
});
如何更改
以百万等为单位显示。。像这样

if(value > 1000000) {
    if(value < 2000000) {
        if(value != 1000000) {
            $("#account" + index).html("1M+");
        } else {
            $("#account" + index).html("1M");
        }
    }
}
if(value > 2000000) {
    if(value < 3000000) {
        if(value != 2000000) {
            $("#account" + index).html("2M+");
        } else {
            $("#account" + index).html("2M");
        }
    }
}
if(value > 3000000) {
    if(value < 4000000) {
        if(value != 3000000) {
            $("#account" + index).html("3M+");
        } else {
            $("#account" + index).html("3M");
        }
    }
}
if(值>1000000){
如果(值<2000000){
如果(值!=1000000){
$(“#帐户”+索引).html(“1M+”;
}否则{
$(“#帐户”+索引).html(“1M”);
}
}
}
如果(值>2000000){
如果(值<3000000){
如果(值!=2000000){
$(“#帐户”+索引).html(“2M+”;
}否则{
$(“#帐户”+索引).html(“2M”);
}
}
}
如果(值>3000000){
如果(值<4000000){
如果(值!=3000000){
$(“#账户”+索引).html(“3M+”;
}否则{
$(“#帐户”+索引).html(“3M”);
}
}
}
执行此类
if
语句的更快方法是什么,这样我就不必写完整的数字了?

您可以尝试:

if(value = 1000000)
    $("#account" + index).html("1M");
if(value > 1000000 && value < 2000000) {
    $("#account" + index).html("1M+");
}
if(值=1000000)
$(“#帐户”+索引).html(“1M”);
如果(值>1000000&&值<2000000){
$(“#帐户”+索引).html(“1M+”;
}
这看起来更干净。另一个选项是声明常量,这样oneM=1000000,twoM=2000000,然后您只需引用这些变量

var x=1000000;
var x = 1000000;
    for(i = 1; i < 10 ; i++)
    {
    if(value > i*x && value < (i+1)*x)
    $("#account" + index).html(i+"M+");
    }
对于(i=1;i<10;i++) { 如果(值>i*x&&value<(i+1)*x) $(“#帐户”+索引).html(i+“M+”); }

如果你想把它变成数十亿美元,遵循同样的模式最简单的方法是

$.each(myObj, function(index, value){
    if(value > 999999) 
        $("#account" + index).html(String.prototype.replace.call(value, /(\d)(\d{6})/, "$1" + (value%1000000 > 0 ? 'M+' : 'M'), 'g'));
    else
        $("#account" + index).html(value);
});

从高到低开始比较,从您期望的最大值开始,如下所示:

if (value > 3000000)
    $("#account" + index).html("3M+");
else if (Value > 2000000)
    $("#account" + index).html("2M+");
else if (Value > 1000000)
    $("#account" + index).html("1M+");
else if (Value = 1000000)
    $("#account" + index).html("1M");
将生产:5M、15672689338


将数字转换为字符串,然后将
000000
替换为
M+
?:请记住,由于
永远不会验证它到底是1000000、2000000还是3000000,因此您永远不会看到1M、2M或3M<代码>>=将更正此问题。这样一种格式化代码的漂亮方法,谢谢@柯蒂斯,那些不超过一百万的数字呢?此代码只是将条目留空。@Andy你说得对,这应该用
包装,如果(value>999999)
@Curtis也有一个小错误,请用这个新版本更新你的代码
$.each(myObj, function(index, value) {
  var check = parseInt(value / 1000000, 10);
  if (check > 0) {
    $("#account" + index).html(check + 'M+');
  } else {
    $("#account" + index).html(value);
  }
});