2016-07-22 17 views

Antwort

2

Wenn Sie auf gültige js Daten ändern können Sie dies mit reduce()

var obj = { 
 
    dis: ["String1", "String2", "String3"], 
 
    par: "pony" 
 
} 
 

 
var result = obj.dis.reduce(function(r, e) { 
 
    r.push({name: e, value: obj.par}); 
 
    return r; 
 
}, []); 
 

 
console.log(result)

0

Sie können es leicht machen, aber passen Sie auf, dass Sie doppelte Klammern (Schnurrbärte und eckige Klammer) haben.

var 
    data = { 
     dis: ["String1","String2","String3"], 
     par: "pony" 
    }, 

    result = []; 

for (var index in data.dis) 
    result.push({ name: data.dis[index], value: data.par} 

können Sie die Geige here finden.

0

Sie können es Array.protoype.map mit tun:

var obj = { 
 
    dis:["String1","String2","String3"], 
 
    par:"pony" 
 
}; 
 

 
var arrOfObj = obj.dis.map(function(name) { 
 
    return { 
 
     name: name, 
 
     value: obj.par 
 
    } 
 
}); 
 

 
console.log(arrOfObj)

Oder lodash der _.map:

var obj = { 
 
    dis:["String1","String2","String3"], 
 
    par:"pony" 
 
}; 
 

 
var arrOfObj = _.map(obj.dis, function(name) { 
 
    return { 
 
     name: name, 
 
     value: obj.par 
 
    } 
 
}); 
 

 
console.log(arrOfObj);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>

Verwandte Themen