我也不知道咋做出来的某个问题

输入:

Test = [
        [6, "j", "k"],
        [1, 2, 3],
        [3, 5, 4],
        ["m", "s", "q"],
        [4, 5, 6],
        ["k", "s", "m"]
      ];

输出:

 

 代码:

  var Test = [
        [6, "j", "k"],
        [1, 2, 3],
        [3, 5, 4],
        ["m", "s", "q"],
        [4, 5, 6],
        ["k", "s", "m"]
      ];
      for (var i = 0; i < Test.length; i++) {
        //数组的长度减去1即为数组最后一个元素的index值
        var Len = Test[i].length;
        for (var j = 0; j < Test.length; j++) {
          //当数组的最后一个元素与另一个数组的第一个元素相等时执行
          if (Test[i][Len - 1] == Test[j][0]) {
            // 将符合条件的两个数组合并并去重
            // Array.from()能把伪数组转化为真正的数组。
            var TestC = Array.from(new Set(Test[i].concat(Test[j])));
            // 保存生成的新数组的长度,以便找到新数组的最后一个元素
            var Size = TestC.length;
            for (let k = 0; k < Test.length; k++) {
              if (TestC[Size - 1] == Test[k][0]) {
                var TestF = Array.from(new Set(TestC.concat(Test[k])));
                // 用第二次生成的新数组替换掉被合并的那个数组
                Test.splice(j, 1, TestC);
              }
            }
          }
        }
      }
      console.log(TestF, "TestF");

ps:说实话,等我做完之后我都看不懂自己咋写的了,不过先记录下来,后面慢慢思考吧

posted @ 2020-10-13 16:50  草莓糖&薄荷茶  阅读(87)  评论(0)    收藏  举报