如何按与单词匹配的程度对二维数组进行排序
How to sort twodimensional array by how closely it matches a word?
在这里小提琴:https://jsfiddle.net/t226j4ox/6/
我有一个 2D 数组,其中包含未排序的名称列表。
我正在尝试弄清楚如何根据它们与用户关键字的匹配程度对数组中的名称进行排序。在jsfiddle中,我将用户的关键字设置为"Be"以进行测试。理想情况下,当您点击"排序名称"按钮时,数组将被排序,以便以"Be"开头的名称首先出现。
应该如何实现这一点?
.HTML
<div id="button1">
Display All Names
</div>
<br>
<div id="button2">
Sort Names
</div>
.CSS
#button1{
background:cornflowerblue;
height:20px;
width:200px;
cursor:pointer;
text-align:center;
}
#button2{
background:mediumpurple;
height:20px;
width:200px;
cursor:pointer;
text-align:center;
}
.JS
var nameList = "";
var names = [["name","Bradley"],["id","Brooke"],["name","Bobby"],
["name","Bethany"],["id","Benjamin"],["name","Bella"],
["name","Blake"],["id","Beatrice"],["name","Baby"],
["name","Byron"],["id","Buster"],["name","Bailey"],
["name","Betty"],["id","Billy"],["name","Brady"]];
var userKeyword = "Be";
$(document).on('click', '#button1', function(event) {
for (i=0; i<5; i++){
nameList += names[i][1] + " ";
}
alert(nameList);
});
$(document).on('click', '#button2', function(event) {
});
使用sort
函数
var nameList = '';
var names = [
['name','Bradley'],
['id','Brooke'],
['name','Bobby'],
['name','Bethany'],
['id','Benjamin'],
['name','Bella'],
['name','Blake'],
['id','Beatrice'],
['name','Baby'],
['name','Byron'],
['id','Buster'],
['name','Bailey'],
['name','Betty'],
['id','Billy'],
['name','Brady']
];
var userKeyword = 'Be';
names.sort(function(a, b){
return b[1].indexOf(userKeyword) - a[1].indexOf(userKeyword);
});
document.write(JSON.stringify(names));
相关文章:
- 作为一个二维数组,从ajax接收
- 创建P5.js二维数组
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- inArray,indexOf在二维数组中
- 比较二维数组js
- 从二维数组中获取img src和img维度,并在body中显示
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- 如何将以下字符串拆分为二维数组:
- Javascript中的多维数组排序索引问题
- 更新Aurelia中二维数组的视图
- 如何在JavaScript中拆分二维数组
- 在二维数组中搜索比嵌套循环更有效的方法
- 无法访问javascript中二维数组中的第二个字段
- 将一个二维数组传递给javascript中的函数
- 无法在 Javascript 中访问我的二维数组
- 如何按与单词匹配的程度对二维数组进行排序
- 对具有3个元素的二维数组进行排序
- 对二维数组进行排序
- 如何按列值排序二维数组
- 如何在Javascript中基于第一个数组对二维数组进行排序