【问题标题】:How to move object in same array如何在同一个数组中移动对象
【发布时间】:2021-07-25 10:19:09
【问题描述】:

我有一个对象数组,我想将任何对象移动到同一个数组中。我真的很努力但没有解决办法。有人可以帮我解决这个问题吗?

[{name:'user 1'}, {name:'user 2'},{name:'user 3'},{name:'user 4'},{name:'user 5'}]

我想选择{name:'user 2'} 并移动到{name:user 3} 之后

预期的结果是

[{name:'user 1'},{name:'user 3'},{name:'user 2'},{name:'user 4'},{name:'user 5'}]

【问题讨论】:

  • “我真的很努力”请你加个minimal reproducible example你的努力吗?
  • 欢迎来到 SO!我不确定你在问什么——你知道元素在哪里,还是你需要迭代才能找到它们?交换元素就像[a[1], a[2]] = [a[2], a[1]]; 一样简单,可以通过array.findIndex(e => e === target)indexOf 找到它们。
  • @ggorlen 你能用codepen写简单的代码吗?
  • @Brad 我要求澄清,但尚未提供。如果我有答案,我会在这里添加它而不是 codepen。我们有一个dupe suggestion,它有 39 个答案。您是否尝试过此现有资源中的代码?

标签: javascript arrays reactjs ecmascript-6 lodash


【解决方案1】:

试试这个:

// Simultaneously remove element 1 from array, while also setting placeholder 
// variable. [0] because splice produces a new array of numbers. But we only 
// want one value.

const placeholder = array.splice(1,1)[0];

// Reintroduce placeholder variable at a different position, position 2.

array.splice(2, 0, placeholder);

【讨论】:

  • 欢迎来到 SO 并感谢您的回答。然而,典型的做法是简单地指出这是一个重复的问题。我们已经有一个 thread 有 39 个答案和 521k 视图,所以让我们保留它(您的代码实际上与该线程中的多个答案相同)。谢谢。
  • @ggorlen 它不是重复的问题,我想移动对象而不是单个元素
  • 有什么区别?你的对象元素。如果它不是重复的,请编辑您的问题以响应澄清请求,清楚地说明为什么它不是重复的,并向我们展示您为解决它所做的努力(询问有关尝试代码的具体问题,而不是任务)。跨度>
  • 我已经解决了但无法解决这个问题?如果你在这里寻求帮助,请帮助我
  • @ggorlen 我想将对象重新定位为数组。例如,我想将索引 2 的对象移动到数组的末尾。你能试试吗
猜你喜欢
  • 2022-11-17
  • 2018-07-09
  • 1970-01-01
  • 2018-02-05
  • 2013-06-01
  • 2018-08-13
  • 2021-12-15
  • 2013-12-29
  • 1970-01-01
相关资源
最近更新 更多