【问题标题】:Push value into a secondary array javascript将值推送到辅助数组 javascript
【发布时间】:2020-04-03 12:45:27
【问题描述】:

我正在尝试在第二个 array 中使用 javascript React 中的 push 新数据,但我无法做到。

我的对象声明如下:

 const {
    id,
    user,
    task
  } = documentTask;

  const {
    time,
    duration,
    sum
  } = task;

然后我尝试将push 的值传递给另一个类的task 字段。

  tasksWithOverallValues.push({
    duration: overallSeconds,
    sum: overallPrice
  });

tasksWithOverallValuesdocumentTask's 的列表。

当我执行.push({duration... 显示的操作时,对象变得未定义。 我的想法是打电话:

  tasksWithOverallValues.push({
    task.duration: overallSeconds,
    task.sum: overallPrice
  });

因为我的它试图将值推送到未知列表中,但我收到以下错误:

'task' is not defined  no-undef

完成后,对象变得未定义,我无法对它做任何事情。

所以我的问题是,我怎样才能push 新值进入二级列表?

【问题讨论】:

  • 你说的“我不能打电话给task.duration/sum”是什么意思?你能分享一个你正在尝试做什么以及你遇到了什么错误的例子吗?
  • 您能否在此处使用jsfiddlesnippet 为此创建一个small demo,以便更好地了解您的问题。您不需要使用大量对象。使用一些简单的对象来重现演示中的问题。

标签: javascript arrays reactjs constants push


【解决方案1】:

您说tasksWithOverallValuesdocumentTasks 的列表。所以如果你在里面推一些东西,它应该是一个 documentTask,比如:

tasksWithOverallValues.push({
    id: someId,
    user: someUser,
    task: {
        duration: overallSeconds,
        sum: overallPrice
    }
});

或者,如果您已经拥有或预先创建了任务:

newTask = {
    duration: overallSeconds,
    sum: overallPrice
};
// ...
tasksWithOverallValues.push({
    id: someId,
    user: someUser,
    task: newTask
});

【讨论】:

  • 这似乎正是我想要的,谢谢,
  • 还有一个问题。如果任务有 3 个变量 duration, sum, time。有没有办法将第三个变量保持为空,这样它就不会显示?在我的情况下,duration and sum 正在改变,但task 下的第三个变量现在也尝试改变,它给了我不想要的结果。
  • 如果我理解正确,您想更改数组中具有特定 id 的任务的持续时间和总和,对吗?在这种情况下,你不想推送一个元素,你想修改一个现有的元素。我会在一分钟内编辑答案。
  • 不,您的回答是正确的。我想将它作为最后一个元素推送,以便在我将导出的 excel 中显示总数。但是task 有第三个值,因为我正在推动task 的其他两个值,所以第三个值time 也显示在最后一行的 excel 中。
  • 好吧,你可以在你推送的任务中添加time: null,比如task: { duration: overallSeconds, sum: overallPrice, time: null },但我不太清楚你是如何使用这些对象的,以及发生了什么出口。
猜你喜欢
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多