Min*_*ohn 50 javascript reactjs
我现在只需获取数组的前3个对象并映射它们:
<ul className="ItemSearchList">
{
champions.slice(0,3).map(function(champ){
return (
<li key={champ.id} >
<div className="media">
<div className="media-left">
<a href="#">
<img className="media-object" src={"http://ddragon.leagueoflegends.com/cdn/5.2.1/img/champion/" + champ.key + ".png"} />
</a>
</div>
<div className="media-body" >
<h4 className="media-heading">{champ.name}</h4>
<div>
something
</div>
</div>
</div>
</li>
)
})
}
</ul>
Run Code Online (Sandbox Code Playgroud)
每个champ都有一个level属性(champ.level).
如何将输出排序到champ.level descending切片前3?
Jon*_*nan 117
使用Array.prototype.sort()自定义比较函数首先执行降序排序:
champions.sort(function(a, b) { return b.level - a.level }).slice(...
Run Code Online (Sandbox Code Playgroud)
ES6甚至更好:
champions.sort((a, b) => b.level - a.level).slice(...
Run Code Online (Sandbox Code Playgroud)
Jor*_*lla 17
编写自己的比较函数:
function compare(a,b) {
if (a.level < b.level)
return -1;
if (a.level > b.level)
return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
要使用它:
champions.sort(compare).slice(0,3).map(function(champ) {
Run Code Online (Sandbox Code Playgroud)
The pure JS solutions are nice. But if your project is set up via npm, you can also use Lodash or Underscore. In many cases those are already sub-dependencies so no extra weight is incurred.
Combining ES6 and _.orderBy provided by lodash
_.orderBy(champions, [c => c.level], ['desc']).slice(0,3)
Run Code Online (Sandbox Code Playgroud)
This is a powerful little utility. You can provide multiple tie-breaking sort keys to orderBy, and specify an order for each individually.
| 归档时间: |
|
| 查看次数: |
51700 次 |
| 最近记录: |