鉴于以下数据:
RNodeLeaf
如何通过数字枚举并尝试在该数字中找到x位?如果x存在于数字中,请删除该数字。
可以将整数视为数组吗?
答案 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;
答案 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
会给您带来意想不到的结果,所以请注意。