将值从两个数组转换为新的第三个数组

图片

我正在学习Javascript的第三周,得到的作业给我带来了一些麻烦。

我应该创建一个名为mix的函数,该函数接受两个数组中的两个参数。调用该函数时,应返回一个新列表,该列表在前两个数组之间交替(请参见下面的示例)。

这是关于数组和循环的,所以我需要使用它们。另外,我只允许使用数组函数:推,弹出,移位和取消移位。

我的老师说这是使用while循环解决的最简单的方法。

mix([], []) === []

mix([2, 4], []) === [2, 4]

mix([], [8, 16]) === [8, 16]

mix([1, 3, 5], [2, 4]) === [1, 2, 3, 4, 5]

mix([10, 9], ['a', 'b', 'c']) === [10, 'a', 9, 'b', 'c']

在获得关于最简单的while循环的提示之前,我开始尝试使用for循环。我在这里遇到的问题是,只要数组的长度相同,它就可以工作,但是我很难理解如何解决这个问题,因此数组可以具有不同的长度。

因为我想学习,所以我希望指针指向正确的方向,而不是整个答案!

请原谅我混乱的初学者代码:)

我当前的代码

function mix(array1, array2) {
    let newList = [];
    for(i = 0; i < array1.length || i < array2.length; i++) {
        if(array1.length > 0 || array2.length > 0){
            newList.push( array1[i] );
            newList.push( array2[i] );
            
        }
        
    }
    return newList;
}   
mix([10, 9],['a', 'b', 'c'])

我还希望找到一个指针,以了解while循环如何变得更容易,以及我将如何使用它。

提前致谢!

一定的表现

要解决当前的代码,你需要单独检查是否i < array1.length(如果是的话,推array1[i]),并且做同样的测试为array2

function mix(array1, array2) {
  let newList = [];
  for (let i = 0; i < array1.length || i < array2.length; i++) {
    if (i < array1.length) {
      newList.push(array1[i]);
    }
    if (i < array2.length) {
      newList.push(array2[i]);
    }
  }
  return newList;
}
console.log(mix([10, 9], ['a', 'b', 'c']));

确保使用iwith声明let i,否则您将隐式创建一个全局变量(或在严格模式下引发错误)。

while循环执行此操作,我将在两个数组都具有长度的情况下循环,并从它们中shift删除(删除[0]第一个项目):

function mix(array1, array2) {
  const newList = [];
  while (array1.length || array2.length) {
    if (array1.length) {
      newList.push(array1.shift());
    }
    if (array2.length) {
      newList.push(array2.shift());
    }
  }
  return newList;
}
console.log(mix([10, 9], ['a', 'b', 'c']));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将两个数组 php 与第三个数组进行比较

Ruby:将两个数组的各个值配对为第三个数组

将两个不同数组的元素合并到第三个数组

Python:根据第三个数组对两个数组进行排序

在前两个数组的基础上创建第三个数组

如何添加两个数组以生成第三个数组?

如何在第三个数组中对两个数组的值进行分组?

比较两个数组,并用第三个数组中的值替换重复项

我想比较两个numpy数组并创建第三个数组

从两个数组中获取正数,然后从中创建第三个

numpy:将第三个维度上的两个数组连接起来

Java映射两个数组中的数据并将其插入第三个数组

比较两个数组时从第三个数组打印正确的项目的问题

检索和更新函数,用于在第三个数组中求和两个数组

有效地从第三个数组中的两个数组中获取每对元素的最小值

PHP将2个数组合并为第三个数组

如何添加两个不等数组的每个元素并将其存储在第三个数组中?

php 创建一个带有额外值的第三个数组,其中的键与两个现有数组相匹配

diff两个数组,每个数组包含文件路径到第三个数组(用于删除)

创建两个数组,然后在用作两个微调器uipickerview的数据的第三个数组中使用它们

在与前两个具有相同组合长度的第三个数组内打印两个数组

元素的总和到第三个数组

Pandas 检查两个数据框列并访问第三个值

显示每个数组的第一个和第三个值

使用2个数组在numpy中填充第三个数组

基于第三个数据框中匹配值的具有新布尔值列的两个数据框的乘积

将 2 个数组的排序合并到 C 中的第三个数组中

将两个数据库合并为第三个数据库

如何将两个活动的两个数字相加并输出到第三个活动