如何在对象数组中打乱数组
How to shuffle arrays in array of objects?
我有一个类似的对象数组:
[
{
name: 'Apple',
colors: ['red', 'green', 'yellow']
},
{
name: 'Orange',
colors: ['orange']
}
]
我想打乱每个物体的颜色。我目前正在使用以下代码:
_.each(fruits, function (elem) {
elem.colors = _.shuffle(elem.colors);
});
然而,这段代码不适用于链接,将colors
变成了一个对象,并且需要一个匿名函数,我认为这个函数可以被消除。有什么方法可以让这个代码更简单吗?
这就是用lodash:以可链接的方式实现它的方法
var r = _(a)
.map(function(i) {
return _.assign(i, { colors: _.shuffle(i.colors) });
})
.value();
JSFiddle:http://jsfiddle.net/bo8xf2as/
以下是如何简单地使用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>';
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象