Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到按其位置缩放的数字?_Javascript - Fatal编程技术网

Javascript 如何找到按其位置缩放的数字?

Javascript 如何找到按其位置缩放的数字?,javascript,Javascript,有没有更好的方法来查找按其位置缩放的数字 例如: '53'→ ['50','3'] '123'→ ['100','20','3'] 以下是我迄今为止所尝试的: function generateCC(x) { var first_c = x.charAt(0); for(var i=0;i<x.length-1;i++) first_c += '0'; var second_c = x-first_c; return [first_c, second_c]; }

有没有更好的方法来查找按其位置缩放的数字

例如:

  • '53'
    → <代码>['50','3']
  • '123'
    → <代码>['100','20','3']
以下是我迄今为止所尝试的:

function generateCC(x) {
  var first_c = x.charAt(0);
  for(var i=0;i<x.length-1;i++)
    first_c += '0';
  var second_c = x-first_c;
  return [first_c, second_c];
}
函数生成器ECC(x){
var first_c=x.charAt(0);
对于(var i=0;i
数字(53,0)返回3
数字(53,1)返回5

您可以改为转换为字符串,并使用字符串[]访问单个数字

var res = [];
var num = 53;
var str = num.toString();
for (var i = 0; i < str.length; i++){
    res.push( parseInt(str[i]) * Math.pow (10, str.length - i - 1) );
}
var res=[];
var-num=53;
var str=num.toString();
对于(变量i=0;i

res将是[50,3]

这是我提出的一个快速实现

function getDigitsScaled(x) {
    var i = '';
    return x.toString().split('')
            .reverse()
            .map(function(d) { return (d += i, i += '0', d); });
}
但是,这将以相反的顺序返回数组(
['3',50']
,而不是
['50',3']
)。此版本将以正确的顺序返回数组:

function getDigitsScaled(x) {
    var s = x.toString(), i = Array(s.length).join('0');
    return s.split('')
            .map(function(d) { return (d += i, i = i.substr(1), d); });
}
以前的版本设计用于处理字符串,但这里有一个版本可以处理数字:

function getDigitsScaled3(x) {
    var i = 1, j = 10, arr = [];
    do {
        arr.push(x % j - x % i);
        i *= 10;
        j *= 10;
    }
    while (i < x);
    return arr;
}
函数getDigitsScaled3(x){ var i=1,j=10,arr=[]; 做{ arr.push(x%j-x%i); i*=10; j*=10; } 而(i
我想你指的是带有占位符零的数字。嗯,什么?实际上,“分数”是一个未解决的除法问题。任何数量的结果都可以反变成分数。但使用哪一个?例如:.5=1/2,或10/20,或25/50等等……现在有意义了吗?它说[NaN,NaN,NaN,NaN,NaN,NaN,10000000,NaN,NaN,NaN,NaN,NaN,NaN]已修复。DJDNDNN抱歉,现在它说[15,4]已修复。我不小心将+改为*
function getDigitsScaled3(x) {
    var i = 1, j = 10, arr = [];
    do {
        arr.push(x % j - x % i);
        i *= 10;
        j *= 10;
    }
    while (i < x);
    return arr;
}