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

javascript - 数组合并问题?

窦哲彦
2023-07-05

a=[78,187,30]
b=[78,186,185,25,30]
c=[78,187,186,185,25,30] //想获得的结果

a=[1,2,3,4,5]
b=[1,6,7,8,3,9,5]
c=[1,2,6,7,8,3,4,9,5] //想获得的结果

a、b数组里面的值都是唯一的,怎么用js获得想要的值呢?

问了ChatGPT都没解决,它给的方法在控制台输出结果不一致,因为chatGPT的js环境不一样。

共有3个答案

明财
2023-07-05

image.png

贲绪
2023-07-05
function mergeArrays(a, b, c) {
    let result = [];
    for (let i = 0; i < b.length; i++) {
        while (a[0] !== b[i]) {
            result.push(a.shift());
        }
        while (c[0] !== b[i]) {
            result.push(c.shift());
        }
        result.push(b[i]);
        a.shift();
        c.shift();
    }
    result = [...result, ...a, ...c];
    return result;
}

let a = [1,2,3,4,5];
let b = [1,3,5];
let c = [1,6,7,8,3,9,5];

console.log(mergeArrays(a, b, c)); // 输出: [1,2,6,7,8,3,4,9,5]

企业微信截图_1688525106570.png

柴凌
2023-07-05

解决方法:

function mergeArrays(a, b, c) {
      let result = []
      for (let i = 0; i < b.length - 1; i++) {
        const start = b[i],
          end = b[i + 1]
        result.push(start)
        result = result.concat(a.slice(a.indexOf(start), a.indexOf(end)))
        result = result.concat(c.slice(c.indexOf(start), c.indexOf(end) + 1))
      }
      return [...new Set(result)]
    }
var a =[78,187,30]
var b=[78,30] //a和b共用的数值
var c=[78,186,185,25,30]

var a2=[1,2,3,4,5]
var b2=[1,3,5] //a2和b2共用的数值
var c2=[1,6,7,8,3,9,5]

console.log(mergeArrays(a,b,c))
console.log(mergeArrays(a2,b2,c2))

image.png

 类似资料:
  • 问题内容: 我有一个像这样的JavaScript数组: 我将如何将单独的内部数组合并为一个类似的数组: 问题答案: 您可以使用合并数组: 使用of方法将仅将第二个参数作为数组,因此最后一行与此相同: 还有一种方法(在ES2019中引入)可用于展平阵列,尽管该方法仅在从版本11开始的Node.js中可用,而在Internet Explorer中完全不可用。

  • el-table合并数据问题,如下图,我现在实现的效果: 但是按我现在实现的话有个问题,只要有相同值就能合并。 而实际要求是:其他列有相同值正常合并,如果诉求类型里面有相同的类型值合并了,诉求利用率才能参与合并,但如果此时诉求利用率没有相同值也不合并。同理细分类型和细分利用率一样道理 请教大家怎么优化一下完成我这一需求。 我分装合并方法: 组件span-method方法:

  • 问题内容: 您好,我想基于数组中的唯一项合并数组。 我拥有的对象 在这个totalCells数组中,我有几个这样的对象 现在,我想制作一个数组,在该数组中我可以基于lineNumber进行数组组合。 就像我有一个具有lineNumber属性和cellWidth集合的对象。我可以这样做吗? 我可以遍历每一行并检查行号是否相同,然后按该单元格宽度。有什么办法我可以算吗? 我正在尝试获得这样的输出。 问

  • 我有三个排序数组,如下所示 这些数组根据数组中每个对象的名称属性进行排序。下面是我从Java转换为合并两个排序数组的方法 这里是两个数组的工作小提琴http://jsfiddle.net/euRn5/.什么是最好的方法来实现相同的n个数组,我目前的想法是一个接一个,合并它与以前合并到最后项目,像n=i的东西。这是最好的方法吗?

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

  • 我有一个数组,数组格式如下: 想要根据msg中的masterId和stackId进行分组,masterId标识数据属于父元素,如果masterId和id相同,说明该元素为父元素,stackId标识这个设备属于一个组,最后想得到的格式如下 请问该怎么做?