首页 > 解决方案 > 在位于对象键中的数组内推送值时出现问题

问题描述

假设我有以下功能:

const createMenu = () => {
  const obj = {
    consumption: [],
  };

  return obj;
};

这是一个函数,调用时返回对象

{ consumption: [] }

我要做的是在该对象内创建一个键,该键是一个函数,当使用字符串参数调用该函数时,它将字符串推入键“消费”内的数组中;

这是我的尝试:

const createMenu = () => {
  const obj = {
    consumption: [],
  };

  let order = (item) => {obj.consumption.push(item); };
  obj.order = order;

  return obj;
};

预期的结果是,当使用字符串参数在对象内部调用该函数时,如下所示:

createMenu().order('pizza');

当我运行时:

console.log(createMenu().consumption);

我的结果是:

['pizza']

但它不工作。如果有人可以帮助我,我将不胜感激。

const createMenu = () => {
  const obj = {
    consumption: [],
  };

  let order = (item) => {
    obj.consumption.push(item);
  };
  obj.order = order;

  return obj;
};

createMenu().order('pizza');

console.log(createMenu().consumption);

标签: javascriptarrays

解决方案


您创建了两个 createMenu 实例,您可能想要创建 1

const menu = createMenu()

此外,如果您想链接函数,您将需要按顺序再次返回 obj。

下面是一个例子..

const createMenu = () => {
  const obj = {
    consumption: [],
  };

  let order = (item) => {
    obj.consumption.push(item);
    return obj;
  };
  obj.order = order;

  return obj;
};

const menu = createMenu().order('pizza');
console.log(menu.consumption);


推荐阅读