如果存在,则替换数字,如果不存在,则按结束

时间:2017-07-12 14:39:14

标签: javascript

鉴于以下数据:

RNodeLeaf

如何通过数字枚举并尝试在该数字中找到x位?如果x存在于数字中,请删除该数字。

可以将整数视为数组吗?

3 个答案:

答案 0 :(得分:2)

小心点。一旦你因为八进制问题而将0621分配给它,数字将是401 - 对于无效的八进制数08和09来说更加棘手。

而是将数字设为字符串,您可以使用charAt或indexOf:

function chop(numString,num) {
  var pos = numString.indexOf(""+num); 
  if (pos ==-1) numString+=num; 
  else numString = numString.slice(0, pos) + numString.slice(pos+1);
  return numString;
}

var num = 0621;
console.log("Octal",num); // to show the octal issue

// better: 
console.log(chop("0621", 2));
console.log(chop("0621", 3));

答案 1 :(得分:0)

会是这样的吗?



var x = 3
var number = 0621;
var _new = '';
for (var t = 0; t < String(number).length; t++) {
  if (String(number).charAt(t) !== String(x)) _new += String(number).charAt(t);
}

console.log('and new', +_new);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

  

可以将整数视为数组吗?

您可以将number转换为string,然后将其拆分,这会为您提供数组。

  

如何通过数字枚举并尝试在该数字中找到x位?如果x存在于数字中,请删除该数字

现在,您可以遍历数字数组以检查输入的x是否在其中。

这就是你需要的:

var x = 3
var number = 5783;
//This will give you an array with your digits
var arr = (String(number)).split('');

if (arr.indexOf(String(x)) === -1) {
  arr.push(x);
} else {
  arr = arr.map(function(n) {
    return n == x ? '' : n;
  });
}

console.log(arr.join(''));

注意:

请注意,0中的前导number会给您带来意想不到的结果,所以请注意。