首页 > 解决方案 > 当我返回地图和数字时,它们没有正确解构(未定义)

问题描述

语境

我有一个函数可以传递一个整数映射和一个不相关的整数。是一个有效的示例:

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_mappsize中。是什么赋予了?

标签: javascript

解决方案


您的代码有效,但您没有调用 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,而您的应用程序可能并非如此


推荐阅读