ReactJS:我如何排序基于道具值的对象数组
ReactJS: How do I sort an array of objects based on value of props?
我有一个React对象数组,我想根据它们其中一个道具的值对它们进行排序。
var arr=[];
arr[0] = <Fruit name="orange" count={10}/>
arr[1] = <Fruit name"apple" count={5}/>
是否有内置的React函数,我可以用它来排序这个数组在水果count
升序?
React没有一个内置的函数来处理这个(据我所知),但是你可以使用像lodash这样的东西来实现你想要的。我还建议您稍微改变一下数据的结构。请看下面的例子:
// your data comes in like this
var arr = [
{name: "orange", count: 10},
{name: "apple", count: 5},
{name: "lemon", count: 11},
{name: "grape", count: 2}
];
// order by ascending
var newArr = _.sortBy(arr, 'count', function(n) {
return Math.sin(n);
});
// create your components
var fruits = newArr.map(function(fruit) {
return(
<Fruit name={fruit.name} count={fruit.count} />
);
});
下面是演示排序函数输入和输出
如果您想根据多个字段进行排序:-//使用lodash
sortingFunction(arrayTobeSorted) {
let sortedResults = sortBy(arrayTobeSorted, function(e) {
return [e.field1.trim().toUpperCase(), e.field2.trim().toUpperCase()];
});
相关文章:
- 查找数组's按属性不存在于另一个数组中的对象
- 用null填充稀疏数组(类似于压缩两个数组)
- 在对象上迭代以验证它是否's键存在于数组中
- 如何创建独立于数组更新的组件列表
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- 为什么“.forEach”适用于密集数组,而不适用于稀疏数组
- 仅当项目没有't存在于数组中
- 相当于JavaScript数组的Java'Collection.addAll'
- Javascript Array.indexOf() 在应用于对象数组时表现出奇怪的行为
- 创建类似于javascript数组的c#数组
- 使用依赖于PHP数组的选项进行选择
- 如何检查我的键是否存在于对象数组中
- 在jQuery选择器数组中单击1项将应用于该数组中的所有元素
- 检查key是否存在于对象数组中
- 当美元.应用于延迟数组,在所有解析之前运行
- AngularJS过滤隐藏存在于其他数组中的项
- Pure reactJS:游戏的生活规则显示错误,由于浮动:左网格建设不对应于2d数组
- 在 JavaScript 中将 max 应用于大型数组时如何避免堆栈溢出
- 没有数.相对于对象数组中的另一个属性的唯一属性的出现
- 下划线相当于_.选择数组