在 javascript 或 jquery 中唯一的 3 个或更多数组对

Unique pair of 3 or more array in javascript or jquery

本文关键字:数组 javascript jquery 唯一      更新时间:2023-09-26

>我有一个类似

main['device']=['iphone4','iphone5','iphone6'];
main['color']=['red','blue','white'];
main['size']=['10','20','30'];

所有 3 个数组都是动态的。我需要所有的组合,例如

iphone4 red 10
iphone4 red 20
iphone4 red 30
iphone4 blue 10
iphone4 blue 10
iphone4 blue 30
iphone4 white 10
iphone4 white 30
iphone4 white 30

iphone5 red 10
iphone5 red 20
iphone5 red 30
iphone5 blue 10
iphone5 blue 10
iphone5 blue 30
iphone5 white 10
iphone5 white 30
iphone5 white 30

iphone6 red 10
iphone6 red 20
iphone6 red 30
iphone6 blue 10
iphone6 blue 10
iphone6 blue 30
iphone6 white 10
iphone6 white 30
iphone6 white 30

JavaScript 或 jquery 解决方案(如果可能的话)。所有组合都需要是唯一的,并且需要以相同的方式打印。

一个纯粹的JavaScript解决方案:

var main = new Array([]);
    
main['device']=['iphone4','iphone5','iphone6'];
main['color']=['red','blue','white'];
main['size']=['10','20','30'];
var res = [];
main['device'].forEach(function (device) {
  main['color'].forEach(function(color) {
    main['size'].forEach(function(size) {
      res.push([device, color, size].join(' '));
    })
  });
  res.push('');
});
document.body.innerHTML = res.join('<br>');

这是你想要的代码。我希望它有所帮助。

    var main = new Array([]);
    
     main['device']=['iphone4','iphone5','iphone6'];
     main['color']=['red','blue','white'];
     main['size']=['10','20','30'];
    
    $.each(main['device'], function(index, value){
      var device = value;
      $.each(main['color'], function(index2, value2) {
        var color = value2;
        $.each(main['size'], function(index3, value3) {
           var size = value3;
           var res = value + " " + value2 + " " + value3;
           $('#res').append(res);
           $('#res').append('<br/>');
        })
        
      })
      $('#res').append('<br/>');
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="res"></div>