Javascript, repeating an object key N-times, being N its value

后端 未结 6 1001
有刺的猬
有刺的猬 2020-12-20 01:11

I was wondering how to do this in the more cleaner and optimal way:

I have an Object with the following structure:

{
   \"125\": 2,
   \"439\": 3,
           


        
6条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-20 01:18

    A helper function:

    function flatten(obj){
     //static Array method: create array (a elements, value b) 
     Array.aXb = Array.aXb || function(a,b){
        b = b || 0;
        return String(this(a)).split(',').map(function(){return b;});
     }
     //obj2array 
     var arr = [];
     for (var k in obj)
        if (+obj[k]) arr = arr.concat(Array.aXb(+obj[k],k));
     return arr;
    }
    var obj= {"125": 2,"439": 3,
              "560": 1,"999": 2 },
    flatten(obj); //=> [125,125,439,439,439,560,999,999]
    

提交回复
热议问题