我的目标是在数组中计算1的迭代次数。 我有这段代码:
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
var count = 0;
for(var i = 0; i < array.length; ++i){
if(array[i] === 1)
count++;
}
console.log(count);
现在,它记录5,但是包括“10”它应该记录6,因为“10”还包含1.我可以使用哪些代码?
答案 0 :(得分:1)
怎么样:
var count = array.toString().split('1').length - 1;
答案 1 :(得分:0)
您可以将filter
方法与length
属性结合使用,以便编写更多更清晰解决方案。
此外,请使用join
和split
方法以达到您的要求。
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
console.log(array.join('').split('').filter(a=>a==1).length);
&#13;
或使用reduce
方法。
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
console.log(array.join('').split('').reduce((c,i)=> i==1 ? c+1 :c).length);
&#13;
答案 2 :(得分:0)
只需将每个项目转换为字符串,然后检查1
是否属于该数字。
因此,对于数字10,字符串为'10'
,然后'10'.indexOf('1')
等于0
。因此,每次在字符串中找到1
时,都会增加计数器。
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
var count = 0;
for (var i = 0; i < array.length; ++i) {
if (array[i].toString().indexOf('1') >= 0)
count++;
}
console.log(count);
&#13;
答案 3 :(得分:0)
您需要将数字拆分成数字并迭代每个数字(这是一个字符)并与之进行比较。使用Object#toString将数字解析为string
,按String#split拆分成字符,然后使用Array#forEach迭代字符并在那里进行相同的比较。
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
var count = 0;
for(var i = 0; i < array.length; ++i) {
var numberAsString = array[i].toString();
numberAsString.split('').forEach(char => {
if(char === '1') {
count++
}
});
}
console.log(count);
&#13;
答案 4 :(得分:0)
您需要将每个数字转换为字符串并使用indexOf
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
var count = array.reduce(function(p,c){
if(c.toString().indexOf("1")>-1)
p++;
return p;
},0);
console.log(count);
&#13;
答案 5 :(得分:0)
您可以将Array#join数组项转换为字符串,并使用带有正则表达式的String#match进行计数:
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1];
// the || [] is a fallback in case there is no 1, and match returns null
var result = (array.join('').match(/1/g) || []).length;
console.log(result);
&#13;
答案 6 :(得分:0)
您可以检查已连接字符串的每个字符。
var array = [10, 3, 22, 40, 1, 40, 1, 22, 1, 0, 3, 53, 1, 1],
count = 0,
i,
temp = array.join('');
for (i = 0; i < temp.length; ++i) {
if (temp[i] === '1') {
count++;
}
}
console.log(count);
答案 7 :(得分:0)
Input - console.log(arrayToList([10, 20, 30]));
Actual output - { value: 10, rest: { value: 30, rest: null } }
Expected output - { value: 10,
rest: { value: 20, rest: { value: 30, rest: null } } }