如何使用 javascript 从整数中删除特定数字

How to remove a particular digit from an integer using javascript

我有一个包含各种数字的整数,我想从整数中删除 4th 个数字。我怎样才能做到这一点?

示例

let number = 789012345

这里我要去掉0

let numberWithoutADigit = removeIthDigitFromNumber(789012345, 4);

function removeIthDigitFromNumber(n, i){
    //convert the number n to string as an array of char
    let o = (n + '').split('');
    //remove the item at the index i (0 based) from the array
    o.splice(i, 1);
    //rebuilds the string from the array of char and parse the string to return a number
    let number = parseInt(o.join(''));

    return number;
}

您可以按照以下步骤操作:

  • 决定是按索引还是按值删除数字,下面的演示将按值删除,这意味着它将删除所有匹配的值
  • 将数字转换成字符串
  • 使用Array.from
  • 将字符串转换为数组
  • 使用Array#filter删除目标数字
  • 使用Array#join创建字符串
  • 使用+将字符串转换回数值

const n = 789012345;
const m = +Array.from( n.toString() ).filter(num => +num !== 0).join("");
console.log( m );

试试这个 :

// Input
let number = 789012345;

// Convert number into a string
let numberStr = number.toString();

// Replace the 0 with empty string
const res = numberStr.replace(numberStr[3], '');

// Convert string into a number.
console.log(Number(res));

let x = 789012345
var nums = [];
let i = 0, temp = 0;

while(x > 1){
    nums[i++] = (x % 10);
    x = (x - (x % 10)) / 10;
}

var cnt = 0;

for(--i; i >= 0; i--){
    if (cnt++ == 3) continue;
    temp = temp * 10 + nums[i];
}

let number = 789012345  
let i = 3  // index 3, 4th digit in number

let arr = number.toString().split("").filter((value, index) => index!==i);
// ['7', '8', '9', '1', '2', '3', '4', '5']

let new_number = parseInt(arr.join(""))
// 78912345

console.log(new_number)

is excellent. I just want to point out another way you could do this with string.replace 和捕获组。

function removeDigit(input, index) {
  let exp = new RegExp(`^(\d{${index}})(\d)(.+)$`);
  return parseInt(input.toString().replace(exp, ''));
}

let output = removeDigit(789012345, 3);
console.log(output); // 78912345

在此示例中,我创建了一个新的 RegExp object from a template literal 以注入 index

第一个捕获组包含直到所需索引的所有数字。第二个包含我们要删除的数字,第三个包含字符串的其余部分。

然后我们 return 从仅第一和第三捕获组的字符串组合中解析出一个整数。