var beasts = 'ant 222, bison, ant 333, ant 555, goose 234';
function countAllBeasts(antMany) {
var OrigString = antMany.split(', ');
for (var i = 0; i < OrigString.length; i++){
var justAnt = OrigString[i];
;
if (OrigString.startsWith('CJ') === true){
(justAnt.length);
}
}
var forLoop = justAnt[i];
console.log(forLoop);
return justAnt;
};
更新:我仍然希望使用for循环,因为该部分需要它并且它比其他方法更简单。希望最少量的更改提供字符串中的ant xxx的数量,这将在分割后生成,在for循环中运行,并使用startsWith进行排序...我知道还有其他方法,但我正在寻找最简单的。我以前不清楚它,但现在很清楚。
答案 0 :(得分:2)
使用Regexp,只需一行代码就可以实现这一目标。
// This will return 4 matches (4 commas) + 1 = count of blocks separated by comma.
new RegExp("\,", "g")
let count = 'ant 222, bison, ant 333, ant 555, goose 234'.match(new RegExp("\,", "g")).length + 1;
console.log(count);
根据您的方法:
使用基本for-loop
function countAllBeasts(antMany) {
var origString = antMany.split(', ');
var ants = [];
for (var i = 0; i < origString.length; i++) {
if (origString[i].startsWith('ant'))
ants.push(origString[i]);
}
return ants;
}
var beasts = 'ant 222, bison, ant 333, ant 555, goose 234';
console.log(countAllBeasts(beasts));
您可以使用函数filter
function countAllBeasts(antMany) {
var origString = antMany.split(', ');
var ants = origString.filter((block) => block.trim().startsWith('ant'));
return ants;
}
var beasts = 'ant 222, bison, ant 333, ant 555, goose 234';
console.log(countAllBeasts(beasts));
答案 1 :(得分:1)
答案 2 :(得分:1)
尝试使用.vue
功能进行拆分。它将返回一个数组。你不需要将for循环推送到一个单独的数组。
split