我被困在这个特定的问题上,试图弄清楚如何将我的newnumString和nextnumString与"&"组合在一起。在尝试了几件事之后,我决定使用赋值运算符 +,但它没有给我所需的输出。任何想法将不胜感激!
function decrementAnd(num) {
var newnumArray = [];
for (var i = num; i >= 1; i--) {
newnumArray.push(i);
var newnumString = newnumArray.join("");//987654321
for (var j = i - 1; j >= 1; j--) {
newnumArray.push(j);
var nextnumString = newnumArray.join("");//98765432187654321..
}
}
console.log(newnumString + "&" + nextnumString)
}
decrementAnd(9);
预期产出:
// 5="54321&4321&321&21&1"
// 3="321&21&1"
// 9="987654321&87654321&7654321&654321&54321&4321&321&21&1"
你不需要
做连接和处理数组,你可以只处理一个字符串。下面是一个示例:
function decrementAnd(num) {
var numbers = "";
for (var i = num; i >= 1; i--) {
for (var j = i; j >= 1; j--) {
numbers += j;
}
numbers+="&";
}
//Delete last &
return numbers.slice(0,-1);
}
console.log("3=", decrementAnd(3));
console.log("5=", decrementAnd(5));
console.log("9=", decrementAnd(9));
您可以在不使用数组的情况下做到这一点,如果您存储中间结果,则可以使用单个循环来完成:
function decrementAnd(num) {
var result="", numbers="";
for (var i = 1; i <= num; i++) {
numbers=i.toString()+numbers;
result=numbers+"&"+result;
}
result=result.substring(0,result.length-1); // removing extra "&" at the end
console.log(result);
}
decrementAnd(3);
decrementAnd(5);
decrementAnd(9);
试试看!!
function decrementAnd(num) {
var newStrinArray = [];
for(var i= num; i>=1;i--){
var newnumArray = [];
for(var j= i; j>=1;j--){
newnumArray.push(j);
}
newStrinArray.push(newnumArray.join("") + "&");
}
console.log(newStrinArray.join(""));
}
decrementAnd(9);