{
value
:
335
,
name
:
'家电'
}
,
{
value
:
310
,
name
:
'服装'
}
,
{
value
:
274
,
name
:
'食品'
}
,
{
value
:
235
,
name
:
'数码'
}
,
{
value
:
400
,
name
:
'家纺'
}
data
.
sort
(
function
(
a
,
b
)
{
return
a
.
value
-
b
.
value
;
}
)
let data = [
{value: 335, name: '家电'},
{value: 310, name: '服装'},
{value: 274, name: '食品'},
{value: 235, name: '数码'},
{value: 400, name: '家纺'}
data.sort(function (a, b) { return b.value - a.value; })
可用于数组排查,数组对象排序,echarts柱状图排序等等
参考:https://blog.csdn.net/weixin_41290949/article/details/104605666
es6 进行数组,数组对象 排序,降序升序升序降序结论:升序let data = [ {value: 335, name: '家电'}, {value: 310, name: '服装'}, {value: 274, name: '食品'}, {value: 235, name: '数码'}, {value: 400, name: '家纺'}
一、普通数组排序
js中用方法sort()为数组排序。sort()方法有一个可选参数,是用来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。如:
var arr = ["a", "b", "A", "B"];
arr.sort();
console.log(arr);//["A", "B", "a", "b"]
因为字母A、B的ASCII值分别为65、66,而a、b的值分别为97、98,所以上面输出的结果是["A", "B", "a", "b"]..
"birthday":"1996-6-6",
"interest":"swimming climbing walking",
"address":"ShanDong province",
"company":"yunzhihui",
"h...
默认情况下,是按照_score降序排序。
_score使用的算法,计算出一个索引中的文本,与搜索文本,他们之间的关联匹配程度
es使用的是,term frequency和inverse documnet frequency算法,简称为TF/IDF算法
term frequency:搜索文本中的各个词条在field文本中出现了多少次,出现次数越多,分数越高
inverse documnet frequency:搜索文本中的各个词条在整个索引的所有文档中出现了多少次,出
```javascript
const arr = [1, 2, 3, 2, 1, 2, 4, 5, 4, 3];
const count = arr.reduce((acc, val) => {
acc[val] = (acc[val] || 0) + 1;
return acc;
}, {});
console.log(count); // {1: 2, 2: 3, 3: 2, 4: 2, 5: 1}
2. 使用Map对象来实现:
```javascript
const arr = [1, 2, 3, 2, 1, 2, 4, 5, 4, 3];
const count = new Map();
arr.forEach((val) => {
count.set(val, (count.get(val) || 0) + 1);
console.log(count); // Map { 1 => 2, 2 => 3, 3 => 2, 4 => 2, 5 => 1 }
以上两种方法都可以实现计算数组中相同元素的个数,使用哪一种方法取决于个人喜好和具体的应用场景。