我对javaScript很陌生,在循环和编写功能方面有一点困难。我试图想出一个在我的rangeArray中循环的函数,在这个函数中,用户输入的数字是数组的末尾,每个包含1的整数都被替换为"Beep“,直到该用户输入数字为止。例: 0,“哔”,2,3,4,5,6,7,8,9,“哔”,“哔”,12。12和2将是不同的,因为稍后我打算添加一个异常,如果一个数字包含任何整数2,它将取代"Beep“,并将其替换为"Boop”。有人知道如何编写这个函数吗?到目前为止,我已经尝试编写一个.includes,甚至使用连接,但到目前为止,我只能替换数字1,而没有其他任何东西。我会非常感谢你的帮助!谢谢您:)
到目前为止,我的代码如下:
function convertToNumber(input) {
let parsedInput = parseInt(input);
console.log(input);
if (!isNaN(parsedInput)) {
return parsedInput;
} else {
return false;
}
}
function rangeOfNumbers(start,end) {
let rangeArray = [];
for (let i = start; i <= end; i++) {
rangeArray.push(i + " ");
}
if (rangeArray); {
rangeArray.forEach (function (number) {
rangeArray.splice(1,'1',"Beep");
}); return rangeArray;
};
}
console.log(rangeOfNumbers(0,12));发布于 2021-04-09 15:25:54
您可以使用Array#map。
function rangeOfNumbers(start,end) {
let rangeArray = [];
for (let i = start; i <= end; i++) {
rangeArray.push(i + "");
}
return rangeArray.map(x => x.includes("2") ? "Boop" : x.includes("1") ? "Beep" : x);
}
console.log(rangeOfNumbers(0,12).join());
Array.from也可以使用。
function rangeOfNumbers(start,end) {
return Array.from({length:end-start+1},
(_,i)=>(i+start+"").includes("1") ? "Beep": i + start);
}
console.log(rangeOfNumbers(0,12).join());
发布于 2021-04-09 15:28:43
若要创建新数组,请使用Array.prototype.map和RegExp.prototype.test将整数转换为字符串,并测试特定值:
const beepify = arr => arr.map(v => (
/2/.test(v) ? "Boop" :
/1/.test(v) ? "Beep" :
v));
console.log(beepify([0,1,2,3,4,5,6,7,8,9,10,11,12]));
还阅读关于三元算子,这是上面使用的一种超越的方式,如所需。
https://stackoverflow.com/questions/67023859
复制相似问题