好吧,我正在尝试访问该数组内字符串中的每个单独的数字。
var array = ['818-625-9945','999-992-1313','888-222-2222','999-123-1245'];
var str = "";
for (i=0; i<array.length; i++) {
str = array[i];
}
问题是这是输出:'999-992-1313'
不是第一个元素数组[0]:'818-625-9945'
当我尝试执行嵌套 for 循环来遍历字符串内的每个元素时,我无法说明这些元素。
var array = ['818-625-9945','999-992-1313','888-222-2222','999-123-1245'];
for (i=0; i<array.length; i++) {
for (j=0; j<array[i].length; j++) {
console.log(array[i][j]);
}
}
我不知道如何访问字符串数组[i]中的每个单独的数字。我想找到一种方法来制作一个计数器,这样如果我遇到数字“8”,我会将 8 添加到总分中,这样我就可以获取每个单独字符串元素的总和,并查看哪个数字具有最高的总和。
var array = ['818-625-9945','999-992-1313','888-222-2222','999-123-1245'];
for (i=0; i<array.length; i++) {
for (j=0; j<array[i].length; j++) {
if (array[i](j).indexOf('8') !== -1) {
// add one to total score
// then find a way to increase the index to the next index (might need help here also please)
}
}
}
最佳答案
也许这对你有用。它利用了Array.prototype.reduce()
, Array.prototype.map()
和 String.prototype.split()
.
该提案遍历给定的数组并拆分每个字符串,然后通过检查 '8'
来过滤获取的数组。返回的数组被视为计数,并添加到前一次 reduce
迭代的返回值中 - 并返回。
var array = ['818-625-9945', '999-992-1313', '888-222-2222', '999-123-1245'],
score = array.reduce(function (r, a) {
return r + a.split('').filter(function (b) { return b === '8'; }).length;
}, 0);
document.write('Score: ' + score);
建议的方法是对每个字符串上的所有 '8'
进行计数:
var array = ['818-625-9945', '999-992-1313', '888-222-2222', '999-123-1245'],
score = array.map(function (a) {
return a.split('').filter(function (b) { return b === '8'; }).length;
});
document.write('Score: ' + score);
关于javascript - 访问数组内字符串的索引并求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34600399/