我是科技大学的学生。我在JS上有我的乡巴佬。这里是:给出了一个char数组。按下“结果”按钮,找到数组中的第一个逗号和这些字符的总数,如果不在数组中,则显示相应的消息。I编写了我的代码,但老师说这是错误的,因为逗号的消息必须显示一次,这样就没有逗号了。求你帮帮我。
function result() {
alert('PI-20\nTask №5\nArray\nOpt. №4')
var total = 0;
var arr = ['s', 'b', '4', '7', ',', '5', 'a', ','];
for (var i = 0; i < arr.length; i++) {
if (arr[i] == ',') {
total += 1;
alert('First comma has index ' + i);
alert('Total numaber of comma ' + total);
} else {
alert('There is no comma');
}
}
}<button onclick="result()">Result</button>
发布于 2021-04-29 11:01:56
这将给你你想要的答案。
function result(){
alert ('PI-20\nTask №5\nArray\nOpt. №4')
var total = 0;
var arr = ['s', 'b', '4', '7', ',', '5', 'a', ','];
for (var i = 0; i < arr.length; i++) {
if (arr[i] == ',') {
total += 1;
}
}
if(total > 0){
alert('Total numaber of comma ' + total);
}
else{
alert('There is no comma');
}
}您所要做的就是在循环结束后添加一个if条件,以获得最终的总价值,而不是检查总值是否大于0,如果是,则通知消息数组中有逗号。
发布于 2021-04-29 11:25:13
下面是一种更现代的方法,使用Array.reduce从数组中收集一些聚合值并显示它们。
注意:通常使用内联事件处理程序是不是个好主意。代码片段使用事件委托。
document.addEventListener("click", handle);
const log = (...strs) => {
console.clear();
strs.unshift('PI-20 Task №5 Array Opt. №4');
console.log(strs.join("\n"));
};
function handle(evt) {
if (evt.target instanceof HTMLButtonElement) {
return result(document.querySelector("input").value.split(""));
}
}
function result(inputValue) {
if (!inputValue.length) {
return log(`no values`);
}
const results = inputValue
.reduce( (acc, val, i) =>
({ ...acc,
chr: acc.chr || val,
sumOfCommas: (acc.sumOfCommas || 0) + (val === ',' ? 1 : 0),
}), { firstComma: inputValue.indexOf(",") } );
log(
`Input: "${inputValue.join(``)}"`,
`Total characters: ${inputValue.length}`,
`${results.firstComma > -1 ? `First comma Array index: ${
results.firstComma} (position ${
results.firstComma + 1} in input)` : `No comma's`}`,
`${results.firstComma > -1 ? `Number of comma's: ${
results.sumOfCommas}` : ``}`
);
}<input type="text" value="sb47,5a," placeholder="Type some text"/>
<button>Result</button>
发布于 2021-04-29 11:01:47
问题在变量总数=0中;
将其设置为变量总数;
https://stackoverflow.com/questions/67315945
复制相似问题