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朕會功夫 你能举个例子吗?@moaningalwaysArray.from(something.keys()).map
这个答案不值得投票,因为它只解释了问题。然而,它并没有提供OP问题的答案。@KarelG最初的问题是,为什么它不起作用,答案是肯定的