我正在尝试创建一个列出一个月日期的字符串。例如,我需要创建一个列出以下内容的字符串:
dayInDateOfBirthInput: "Day\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31",
我已经尝试过
[Array(31).keys()].map(x => x+1).join("\n")
感谢您的光临!
答案 0 :(得分:2)
我已经尝试过
[Array(31).keys()].map(x => x+1).join("\n")
您非常亲密。 .keys()
返回一个数组迭代器对象。您需要spread it创建一个数组。
console.log(
[...Array(31).keys()].map(x => x+1).join("\n")
)
答案 1 :(得分:1)
您的注释中的代码可以进行调整:
Array(31).fill(0).map((_,x) => x+1).join("\n");
答案 2 :(得分:1)
类似
const str = 'Day' + Array(31).fill(0).map((x, i) => `\n${i+1}`).join('');
console.log(str);
答案 3 :(得分:1)
正如其他人指出的那样,您的示例缺少扩展运算符。
可能我建议使用Array.from(...)
(第二个参数是map函数):
let result = Array.from({length:31}, (_,i) => i+1).join("\n");
console.log(result);
let resultWithDay = `Day\n${result}`;
console.log(resultWithDay);
要撤消它:
let result = Array.from({length:31}, (_,i) => i+1).reverse().join("\n");
console.log(result);
let resultWithDay = `${result}\nDay`;
console.log(resultWithDay);