拆分多维数组

时间:2017-10-09 00:01:16

标签: jquery multidimensional-array

我有一组动态创建的数组,它们存储为一个数组。

每个嵌套数组中的第一个条目将始终是分类法的名称,后续项目是与该分类法相关联的类别。

我想使用这些数据来创建一个网址,而后者又会在另一个网页上运行查询,就像这样;

http://example.com/?stoma=colostomy&problem=leaks,odour

如何动态拆分每个嵌套数组以创建此结构?

以下是数组的创建方式:https://codepen.io/chops07876/pen/xXWVVy

更新

我已经想出了如何相应地拆分数组,这是最有效的方法吗?

query = '';

$(result).each(function(i){
    if(result[i].length >= 2) {
        taxonomy = result[i][0];
        categories = result[i].slice(1);
        query += taxonomy+'='+categories+'&';
    }
});

console.log(query.slice(0,-1));

1 个答案:

答案 0 :(得分:1)

除非与数百万人打交道,否则你不应该担心表现。

这是实现目标的一种方式,是<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="root"> </div>filtermap的组合。

join

这与ES6单线程

相同
var arrays = [[], ["stoma", "colostomy"], ["problem", "leaks", "odour"]];

function stringify( arrays ){
  
  // Remove all elements of length < 2.
  var filtered = arrays.filter(function(array){
    return array.length > 1;
  });

  // Convert every array into a string (tax=cat1,cat2...)
  var strings = filtered.map(function(array){
    var taxonomy = array[0];
    var categories = array.slice(1);
    return taxonomy + "=" + categories.join(",")
  });
  
  // Join all previous strings with `&` and add a `?` on beginning.
  return "?" + strings.join("&");
  
}

console.log( stringify(arrays) )