【问题标题】:I want a function which merge the sub array if a particular value is same如果特定值相同,我想要一个合并子数组的函数
【发布时间】:2020-10-17 20:32:33
【问题描述】:

我的二维数组如下:

[ [ 'Procare 合身医院床底床单,象牙色', 'DT4098', '演示', 空值, 12300, 2], ['基本医疗用品豪华全套医院病床', 'ERT665', '演示', 空值, 11790, 2], ['博士。 Morepen St 04 声学听诊器', 'DT4098', '演示', 空值, 21237, 2], ['CosmoCare KLife 5 辅助病人监护仪', 'YTT690', '演示', 空值, 11000, 2], ['CosmoCare KLife 5 辅助病人监护仪', 'YTT690', '演示', 空值, 11000, 2], ['CosmoCare KLife 5 辅助病人监护仪', 'YTT690', '演示', 空值, 11000, 2], ['CosmoCare KLife 5 辅助病人监护仪', 'YTT690', '演示', 空值, 11000, 2], ['博士。 Morepen St 04 声学听诊器', 'DT4098', '演示', 空值, 21237, 2], ['基本医疗用品豪华全套医院病床', 'ERT665', '演示', 空值, 11790, 2], ['基本医疗用品豪华全套医院病床', 'ERT665', '演示', 空值, 11790, 2]];

我只想根据子数组的第一个索引从多维数组中删除重复值。如果第一个索引值相同,则删除重复的子数组。

[ [ 'Procare 合身医院床底床单,象牙色', 'DT4098', '演示', 空值, 12300, 6], ['基本医疗用品豪华全套医院病床', 'ERT665', '演示', 空值, 11790, 6], ['CosmoCare KLife 5 辅助病人监护仪', 'YTT690', '演示', 空值, 11000, 4]];

【问题讨论】:

  • 您没有很好地解释此合并中发生了什么,值如何受到影响(总计?)等等。此外,您应该提供您的尝试,以及您在哪里卡住并获得不同的结果。现在它听起来就像“给我代码”,并且因为没有表现出任何努力而值得一票。
  • 不以“我想要 x”开头,您的问题可以获得更好的回答。在您的情况下,只需从“function which...”开始

标签: javascript node.js arrays sorting


【解决方案1】:

希望对你有所帮助。

var myArray = [ [ 'Procare Fitted Hospital Bed Bottom Sheet, Ivory',
    'DT4098',
    'Demo',
    null,
    12300,
    2],
  [ 'Essential Medical Supply Deluxe Complete Hospital Bed Set',
    'ERT665',
    'Demo',
    null,
    11790,
    2],
  [ 'Dr. Morepen St 04 Acoustic Stethoscope',
    'DT4098',
    'Demo',
    null,
    21237,
    2],
  [ 'CosmoCare KLife 5 Para Patient Monitor',
    'YTT690',
    'Demo',
    null,
    11000,
    2],
  [ 'CosmoCare KLife 5 Para Patient Monitor',
    'YTT690',
    'Demo',
    null,
    11000,
    2],
  [ 'CosmoCare KLife 5 Para Patient Monitor',
    'YTT690',
    'Demo',
    null,
    11000,
    2],
  [ 'CosmoCare KLife 5 Para Patient Monitor',
    'YTT690',
    'Demo',
    null,
    11000,
    2],
  [ 'Dr. Morepen St 04 Acoustic Stethoscope',
    'DT4098',
    'Demo',
    null,
    21237,
    2],
  [ 'Essential Medical Supply Deluxe Complete Hospital Bed Set',
    'ERT665',
    'Demo',
    null,
    11790,
    2],
  [ 'Essential Medical Supply Deluxe Complete Hospital Bed Set',
    'ERT665',
    'Demo',
    null,
    11790,
    2] ];
   let duplicates = [];
    let output = myArray.reduce((t, i) => {
      if(duplicates.includes(i[1])) {
        let myArray = t.filter((item) => item[1] == i[1])[0];
        myArray[5] += i[5];
        t = t.filter((item) => item[1] != i[1]);
        i = myArray;
      } else {
        duplicates.push(i[1]);
      }
      t.push(i);      
      return t;
    }, []);
    
    console.log(output); 

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2022-01-13
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多