如何创建一个列出数字的字符串?

时间:2019-07-17 18:44:56

标签: javascript

我正在尝试创建一个列出一个月日期的字符串。例如,我需要创建一个列出以下内容的字符串:

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")

感谢您的光临!

4 个答案:

答案 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);