我有一个空数组,想用字符串填充。字符串将使用index
值进行计数。例如:
'item 1'
'item 2'
'item 3'
我有一个有效的map
函数可以做到这一点:
let items = new Array(100).fill().map((item, index) => {
return `item ${index + 1}`
})
虽然这确实用遍历索引值的字符串填充了数组,但我还将item
参数传递给map
函数,即currentValue
(如以MDN命名)。我实际上并没有使用此值。
看到要传入的值 ,我尝试传入null
,但这给了我一个错误。我还尝试传递一个空对象,例如.map(( {}, index) => ...)}
。老实说,我不知道空对象的原理是什么,但我认为我会尝试的。不用说,那是行不通的。
我的问题是-如果您不需要使用这样的必需参数,该怎么办?我可以在其中传递某种未定义或无用的值吗?我应该使用map
以外的其他功能来做到这一点吗?
我可以使用for
循环来做到这一点:
let items = new Array(100).fill()
for (let index = 0; index < items.length; index++ {
items[index] = `item ${index + 1}`
}
在这种情况下,for
循环会是更好的选择吗?
答案 0 :(得分:2)
fill
+ map
只在使用from
-
const result =
Array.from(Array(10), (_,i) => `item ${i + 1}`)
console.log(result)
// [ "item 1"
// , "item 2"
// , "item 3"
// , "item 4"
// , "item 5"
// , "item 6"
// , "item 7"
// , "item 8"
// , "item 9"
// , "item 10"
// ]
答案 1 :(得分:1)
引用您的代码
let items = new Array(100).fill().map((item, index) => {
return `item ${index + 1}`
})
item将是“ undefined”,是的,您需要传递item(currentValue),因为它是必填字段。
只需一行即可实现:
let items = Array.from(Array(100).keys()).map( item => `item ${item+1}`);
没有地图
let items = Array.from(Array(100).keys(), item => `item ${item+1}`);
答案 2 :(得分:0)
您无需担心未使用的参数。如果您真的介意,请尝试以下代码:
var items = new Array(...new Array(100).keys()).map(index => {
return `item ${index + 1}`
});
console.log(items);
答案 3 :(得分:0)
未使用的参数应分配给_
:
let items = new Array(100).fill().map((_, index) => `item ${index + 1}`);