如何从字符串中计算某些字符
How to calculate certain chars from a string
我从昨天开始就在寻找这个,已经搜索了很多,但没有找到任何确切的答案。如果你发现了,告诉我,我会很感激并结束这个问题:)
我想要的是:
-> If there are an even number of digits, double every other digit starting with the first
-> If there are an odd number of digits, double every other digit starting with the second.
这就是我目前所做的:
function validate(n){
var num = n.toString(); // THIS COULD BE AN ARRAY OR WHATEVER
if (eval(num%2==0)) { // IF HAS EVEN NUMBER OF DIGITS
for (var i=0; i<num.length; i++) {
if (num.charAt(i) === num.charAt(0)) {
eval(num.charAt(i)*=2);
}
}
console.log(num);
} else { // IF HAS ODD NUMBER OF DIGITS
for (var i=0; i<num.length; i++) {
if (num.charAt(i) === num.charAt(1)) {
eval(num.charAt(i)*=2);
}
}
console.log(num);
}
}
validate(1234516178);
示例:
1714 => [1*, 7, 1*, 4] => [2, 7, 2, 4]
891 => [8, 9*, 1] => [8, 18, 1]
希望我是清白的。有人能帮忙吗?欣赏
也许这对你有用。它使用一个包含值的数组,并对值进行迭代以进行更改。
function validate(n) {
var array = n.toString().split('').map(Number),
number = n % 2 ? array[1] : array[0];
return array.map(function (a) {
return a === number ? 2 * a : a;
});
}
function print(o) {
document.write('<pre>' + JSON.stringify(o, 0, 4) + '</pre>');
}
print(validate(1234516178));
print(validate(1714)); // => [1*, 7, 1*, 4] => [2, 7, 2, 4]
print(validate(891)); // => [8, 9*, 1] => [8, 18, 1]
你可以试试这样的东西:
function validate(n) {
n = n.toString();
var isEven = (parseInt(n, 10) % 2 === 0);
var digits = n.split("");
// Strings to numbers
digits.forEach(function(digit, index) {
digits[index] = parseInt(digit, 10);
});
if(isEven) {
var firstDigit = digits[0];
digits.forEach(function(digit, index) {
console.log(digit);
if(digit === firstDigit) {
digits[index] *= 2;
}
});
} else {
var secondDigit = digits[1];
digits.forEach(function(digit, index) {
if(digit === secondDigit) {
digits[index] *= 2;
}
});
}
return JSON.stringify(digits);
}
当然,这可以通过包含更多条件并只为每个留下一个条件来做得更好
你不需要字符串来完成
function validate(s){
var a = parseInt(s);
var b = 0;
var odd = (a+'').length %2//true;
//var summ = 0;
while(a>=1){
var b = Math.floor(a%10);
var c = odd?b: b*2//<10? b*2 : b*2-9;
//summ += c;
odd = !odd;
a = a/10;
//output
$('input').after('+'+c)
}
//output
$('input').after('<br>')//.after(summ).after('<br> summ: ')
//return summ%10
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="validate($('input').val())">validate</button>
<input>
相关文章:
- 如何使用javascript计算文本区域中键入的字符数
- 有没有一种方法可以让javascript不计算特定的字符
- 计算文本区域中的字符数
- 计算 jQuery 中字符串中的特殊字符
- 计算文本块中的字符数,并将其拆分为两列
- 计算JavaScript中句子(数组)中字符(数组)的出现次数
- Jquery计算元素中的字符,并为太短的字符添加填充
- 计算剩余字符以存储在 mysql 中
- 我如何计算各种字符的终端列宽
- 想要在加载窗口上计算字符数
- JavaScript三元运算符,用于计算字符串中的字符数
- 如何计算对话框中文本区域的字符数
- 页面加载时字符数不计算在内
- 计算字符串中的大写和小写字符
- 在键按下事件上计算文本字段中的字符数
- 计算 ReactJs 中 TextArea 中的字符数
- 使用 JavaScript 计算字符串中字符的频率
- 将字符添加到输入中,除非输入值是计算结果
- 如何使用Javascript计算字符数
- 例如,如何根据 javascript 中的字符计算