当前位置: 首页 > 知识库问答 >
问题:

在javascript中合并两个数组和分离数组

奚光霁
2023-03-14

我想分开颜色,大小,材料等,其中a和b阵列总是相同的长度。

a = ["Color", "Color", "color", "color", "Size", "size"]

b = ["black", "red", "blue", "green", "small", "large"]

我想要

output = [['black','red','blue','green'], ['small','large'],...]

共有3个答案

苏高远
2023-03-14

在这里你可以找到我对你的问题的答案。 它首先存储在字典中,然后将其转换为数组。

下面的代码还将为颜色和大小随机排序的情况生成所需的结果。

null

const a = ["Color", "Color", "color", "color", "Size", "size", "color"];
const b = ["black", "red", "blue", "green", "small", "large", "white"];

let dict = [];
for(let i=0; i<a.length; i++) {
    let lowerCase = a[i].toLowerCase();
    if(!dict[lowerCase]) {
       dict[lowerCase] = [];
    }
    dict[lowerCase].push(b[i]);
}

let arr = [];
for(let item in dict) {
    arr.push(dict[item]);
}

console.log(arr);
柴星津
2023-03-14

要合并这两个数组,还可以使用foreach:

const a = ["Color", "Color", "color", "color", "Size", "size"];

常量b=[“black”,“red”,“blue”,“green”,“small”,“large”];常量newArray=[]

const newArray2 = a.forEach((color) => {newArray.push(a+b);console.log(newArray)});
斜昊空
2023-03-14

您可以使用reduce,然后通过object.values()获取值:

null

var a = ["Color", "Color", "color", "color", "Size", "size"];
var b = ["black", "red", "blue", "green", "small", "large"];

var result = Object.values(b.reduce((acc, elem,i)=>{
  const key = a[i].toLowerCase();
  acc[key] = [...(acc[key] || []), elem];
  return acc;
},{}));

console.log(result);
 类似资料:
  • 问题内容: 我有两个像这样的数组: 我想结合这两个数组,使其不包含重复项,并保留其原始键。例如,输出应为: 我已经尝试过了,但是它正在更改其原始键: 有什么办法吗? 问题答案: 只需使用: 那应该解决。因为如果一个键出现多次(例如在您的示例中),则使用字符串键,因此一个键将覆盖具有相同名称的处理键。因为在您的情况下,它们两者都具有相同的值,但这无关紧要,并且还会删除重复项。 更新:我刚刚意识到,P

  • 有两个数组: 我是如何做到的: 我想用RxJ或其他。 如果值不是数字,例如Object。

  • 问题内容: 我有两个像 我希望它们合并成单个数组 问题答案: 您需要该方法。

  • 问题内容: 我有两个数组,我想将这两个数组合并为一个数组。请查看以下详细信息: 第一个数组: 第二个数组: 我想要这个结果。有人知道该怎么做吗? 希望你理解这个问题。先感谢您。 问题答案: 已修正 (再次) 接受无限数量的输入数组,将所有子数组作为索引数组合并到一个容器中,然后返回结果。 编辑03/2014: 提高可读性和效率

  • 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,

  • 问题内容: 我见过类似的问题,但没有一个提供我所要的答案,因此,如果这被认为是重复的,我在此致歉。我正在尝试将数组{1,2,3}和{4,5,6}合并为{1,2,3,4,5,6}。我做错了什么?我是java的新手。抱歉,问题很愚蠢。 问题答案: 代替 您需要调用merge方法,并将结果分配给数组,例如: 您的for循环也应该是:

  • 问题内容: 我有两个数组。 我需要合并这些数组,并在下拉列表中显示为 我怎么能使用swift.im新手来快速获得此结果,有人可以帮忙吗? 问题答案: 压缩数组并连接结果:

  • 我知道类似的问题也有人问过,我也研究过很多网站。我已经尝试使用一些答案,但我的代码仍然不能工作。 我正在经历以前的作业,以帮助建立我的Java知识。请原谅我的代码中的任何错误,我还在学习Java。 假设两个输入数组中的元素都按非递减顺序排序(例如[0,1,2,2]和[1,2,3,3,4,5])。返回的“合并”数组必须保留此属性(例如[0,1,1,2,2,2,3,3,4,5])。 输入和输出都允许重