javascript - 当我返回地图和数字时,它们没有正确解构(未定义)
问题描述
语境
我有一个函数可以传递一个整数映射和一个不相关的整数。这是一个有效的示例:
const myFunction = () => {
let color_map = new Map();
color_map.set(111, 222);
color_map.set(333, 444);
color_map.set(555, 666);
let rando = 777;
return {color_map, rando};
}
const {color_map, rando} = myFunction();
console.log("Results:", color_map, rando)
我的代码
我的实际代码非常相似:
const makeColorMap = (img) => {
let color_map = new Map();
let psize = 0;
// ...
return {color_map, psize};
}
// makeColorMap() is passed in as 'method'
const {color_map, psize} = method(arr);
但是,当我运行它时,两者都未定义。 这与匿名函数有关吗?我真的迷路了。
也许相关,但在之前的迭代中,Map 的前两个元素分别被放入color_map
和psize
中。是什么赋予了?
解决方案
您的代码有效,但您没有调用 makeColorMap,而是调用了一些方法:
const makeColorMap = (img) => {
let color_map = new Map();
let psize = 0;
// ...
return {
color_map,
psize
};
}
const arr = [];
const method = makeColorMap;
const {color_map, psize} = method(arr);
console.log(color_map, psize);
您需要在您的应用程序中做的是确保它method
确实是 a makeColorMap
,而您的应用程序可能并非如此