我有一个与此类似的对象数组:
[
{
name: 'Apple',
colors: ['red', 'green', 'yellow']
},
{
name: 'Orange',
colors: ['orange']
}
]
我想改变每个物体的颜色。我目前正在使用以下代码:
_.each(fruits, function (elem) {
elem.colors = _.shuffle(elem.colors);
});
但是,此代码不适用于链接,将colors
转换为对象,并且需要一个我认为可以消除的匿名函数。有没有办法让这段代码更简单?
答案 0 :(得分:2)
这就是你用lodash以链接的方式实现它的方法:
var r = _(a)
.map(function(i) {
return _.assign(i, { colors: _.shuffle(i.colors) });
})
.value();
JSFiddle:http://jsfiddle.net/bo8xf2as/
答案 1 :(得分:-2)
以下是使用jinqJs随机填充colors属性数组的方法。
var data = [
{
name: 'Apple',
colors: ['red', 'green', 'yellow']
},
{
name: 'Orange',
colors: ['orange']
}
];
var result = jinqJs().from(data).select(function(row){
row.colors = row.colors.sort(function() {return .5 - Math.random();});
return row;
});
document.body.innerHTML += '<pre>' + JSON.stringify(result, null, 2) + '</pre><br><br>';
&#13;
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>
&#13;