Javascript TypeError:(中间值)。键(…)。映射不是函数

Javascript TypeError:(中间值)。键(…)。映射不是函数,javascript,ecmascript-6,Javascript,Ecmascript 6,我遇到了一个奇怪的错误,有人能帮我解决吗 const myArray = new Array(4) .keys() .map((v, i) => ( console.log('print:', v, i) ) ) console.log('myArray print: ', myArray); 我得到这个错误: TypeError: (intermediate value).keys(...).map is not a functi

我遇到了一个奇怪的错误,有人能帮我解决吗

const myArray = new Array(4)
    .keys()
    .map((v, i) => (
          console.log('print:', v, i)
      )
    )
console.log('myArray print: ', myArray);
我得到这个错误:

TypeError: (intermediate value).keys(...).map is not a function
更新: 我想使用
i
从另一个现有数组中查找一些内容

const myArray = new Array(4)
    .keys()
    .map((v, i) => ({
      name: i
      })
    )
console.log('myArray print: ', myArray);
编辑: 这个问题不是重复的,它试图迭代某个数字,并使用迭代创建一个新对象。

返回一个迭代器对象,该对象是一个对象,并且没有属性映射。你可以把它转换成do

constmyarray=[…新数组(4).keys()].map((v,i)=>({
姓名:i
})
)
log('myArray print:',myArray)您可以使用Array.from获得预期的输出:

var myArray=Array.from(数组(4),(值,索引)=>({name:index}));

log('myArray print:',myArray)应用于数组的函数键返回一个对象,而映射函数对对象不可用。您想对上面的代码做什么?与dupe目标相同的问题和解决方案,只是
keys
是迭代器对象而不是HTML集合。您可以使用
entries()
而不是
map()
@Faly请查看更新解决方案:只需通过
数组传递即可。来自
@Derek朕會功夫 你能举个例子吗?@moaningalways
Array.from(something.keys()).map
这个答案不值得投票,因为它只解释了问题。然而,它并没有提供OP问题的答案。@KarelG最初的问题是,为什么它不起作用,答案是肯定的