【问题标题】:How do I simply take an attribute from an array and put it into another? Javascript如何简单地从数组中获取一个属性并将其放入另一个数组中? Javascript
【发布时间】:2013-11-13 03:17:40
【问题描述】:

我敢打赌这是一个超级简单的答案。

假设我有一个属性数组:

  var array = ['green','blue','red','purple','orange','yellow','magenta'];

如何获取该数组中的值并将它们转移到 3 个不同的组中? 所以它看起来像

  firstGroup = green, blue, red
  secondGroup = purple, orange
  thirdGroup = yellow, magenta

我可以简单地创建某种使用 .push 函数的 for 循环吗?还是 .push 函数不能那样工作?

【问题讨论】:

  • 分割的标准是什么,哪个元素进入哪个组?
  • 嗯,理想情况下,我希望一个组比其他组的元素多于 1 个。所以 firstGroup = 绿色、蓝色、红色 secondGroup = 紫色、橙色 thirdGroup = 黄色、洋红色只是前 3 个元素进入第一组,然后接下来的 2 个进入第二个,最后 2 个进入第三个。

标签: javascript arrays list variables push


【解决方案1】:

这样的?

var array = ['green','blue','red','purple','orange','yellow','magenta'];
var firstGroup = array.slice(0,3);
var secondGroup = array.slice(3,5);
var thirdGroup = array.slice(5,7);

编辑

我想你可以这样做,因为你不想使用slice

var array = ['green','blue','red','purple','orange','yellow','magenta'];
var result = [];

for(var i = 0; i < array.length; i++)
{
    var index = i % 3;
    result[index] = result[index] || [];
    result[index].push(array[i]);    
}

项目的顺序与您的问题不完全相同。这对您的解决方案有影响吗?

【讨论】:

  • 解决方案没有使用splice
  • 抱歉,打错了。我的意思是切片。
  • 我猜你可以用splice做类似的事情。您是否有不想使用slice 的原因?你想使用循环吗?
  • 你会如何用循环来做呢?
  • 有没有一种方法可以让您使用一个函数,在该函数中输入一个数组以及您想要多少个组,然后将数组拆分成组返回?
【解决方案2】:

创建一个新数组也可以。您可以使用“切片”方法。

var newArray = [array.slice(0, 3), array.slice(3, 5), array.slice(5, 7)];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 2023-01-20
    • 2020-07-04
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    相关资源
    最近更新 更多