如何从数组值生成双对?

时间:2017-10-27 17:11:01

标签: javascript arrays json object

我有一个这样的数组:var array = [111, 222, 000, 111, 111, 000, 1111]

到目前为止一切顺利。
如何将数组的所有值分配到最大值。具有相同值并获得 索引的2个插槽组(+以后删除所有小于2个元素的组) ?< / strong>

就像这样:

var result = {["111" : "0, 3"], ["222" : "1"], ["000" : "2, 5"], ["111" : "4, 6"]} 


(     var end_result = {["111" : "0, 3"], ["000" : "2, 5"], ["111" : "4, 6"]}

  

: - :“111”是值   
   : - :“0,3”是数组的前2个索引

1 个答案:

答案 0 :(得分:0)

您可以将对象用作单个插槽的哈希表。

&#13;
&#13;
var array = [111, 222, 000, 111, 111, 000, 111],
    hash = Object.create(null),
    result = array.reduce(function (r, a, i) {
        if (hash[a]) {
            hash[a][1] += ', ' + i;
            hash[a] = 0;
            return r;
        }
        hash[a] = [a, i];
        return r.concat([hash[a]]);
    }, []);
    
console.log(result);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;