2

.indexOf() 的反面是什么?我使用正则表达式在字符串中查找数字,现在我想将它们加在一起:

function getnum(str){
    var nums= str.match(/\d+/g);
    return //30+83//
 }
 getnum("sdsoi30adsd83")

我可以为此使用的数组是否有某种 .charAt() 等效项?

对不起,这是一个非常初学者的问题。我整天都在编码,我意识到答案可能非常明显,但我已经查看了 devdocs.io 没有运气。

4

4 回答 4

5
function getnum(str){
    var nums= str.match(/\d+/g);
    var total=0;
    for(var i=0;i<nums.length;i++)
    {
        total+=Number(nums[i]);
    }
    return total;
 }
 getnum("sdsoi30adsd83");
于 2013-09-24T06:03:52.927 回答
0

例如,第 5 个字符的 char 是

"sdsoi30adsd83"[4] 

这是“我”

于 2013-09-24T06:02:06.710 回答
0
return nums.reduce(function(c, n) {
    return c + parseInt(n);
}, 0);

演示在这里 - http://jsfiddle.net/TyV3s/

于 2013-09-24T06:06:10.113 回答
0

你也可以使用 ES5 map-reduce 函数来解决这个问题。
当然 for 循环解决方案可以正常工作。

function getnum(str){
    var nums= str.match(/\d+/g);
    console.log(nums);
    return nums.map(function (str) {
        // convert to a Int array
        return parseInt(str);
    }).reduce(function (prev, curr) {
        return prev+curr;
    }, 0);
}
console.log('result=' +  getnum("sdsoi30adsd83"));

至于你原来的问题,相反的indexOf()是索引.or []

var a = "sdsoi30adsd83";
a[a.indexOf('3')]; // = "3"

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype#Methods

于 2013-09-24T06:09:22.230 回答