TypeError :(中间值).keys(...)。map不是函数

时间:2017-12-06 10:10:13

标签: 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 function

更新

我想使用i从另一个现有数组中查找一些内容。

const myArray = new Array(4)
    .keys()
    .map((v, i) => ({
      name: i
      })
    )
console.log('myArray print: ', myArray);

编辑:

这个问题不是重复的,它试图迭代一定数量并使用迭代创建一个新对象。

2 个答案:

答案 0 :(得分:3)

Array.keys()返回一个迭代器Object,它是一个对象,并且没有属性映射。您可以将其转换为



const myArray = [...new Array(4).keys()].map((v, i) => ({
      name: i
      })
    )
console.log('myArray print: ', myArray);




答案 1 :(得分:3)

您可以使用 Array.from 来获取预期的输出:



var myArray = Array.from(Array(4), (value, index) => ({ name: index}));
console.log('myArray print: ', myArray);