在本文中,我们将为您详细介绍javascript排序数组的相关知识,并且为您解答关于js排序数组的疑问,此外,我们还会提供一些关于javascript–JS排序数组由三种排序类型组成、javascri
在本文中,我们将为您详细介绍javascript排序数组的相关知识,并且为您解答关于js 排序数组的疑问,此外,我们还会提供一些关于javascript – JS排序数组由三种排序类型组成、javascript – 使用数字排序数组而不使用sort()方法、javascript – 在LARGE排序数组中删除长度小于`n`的元素、javascript – 按关键对象排序数组的有用信息。
本文目录一览:- javascript排序数组(js 排序数组)
- javascript – JS排序数组由三种排序类型组成
- javascript – 使用数字排序数组而不使用sort()方法
- javascript – 在LARGE排序数组中删除长度小于`n`的元素
- javascript – 按关键对象排序数组
javascript排序数组(js 排序数组)
... sortArray = new Array ("hello","Link to Google","zFile","aFile"); //sort array if (dir == "asc") { sortArray.sort(function(a,b){return a - b}); } else { sortArray.sort(function(a,b){return b - a}); } for(var i=0; i<sortArray.length; i++) { console.log(sortArray[i]); }
日志按照输入的顺序显示它们.
解决方法
if (dir == "asc") { sortArray.sort(function(a,b) { a = a.toLowerCase(); b = b.toLowerCase(); return a === b ? 0 : a > b : 1 : -1; }); } else { sortArray.sort(function(a,b) { a = a.toLowerCase(); b = b.toLowerCase(); return b === a ? 0 : b > a : 1 : -1; }); }
我也习惯了toLowerCase(),以便’适当地放置’链接到谷歌’.
编辑:根据comment.更新以修复比较问题
See example →
javascript – JS排序数组由三种排序类型组成
>精确的字符串.
>从一开始.
>包含.
代码:
var arr = ['Something here Hello','Hell','Hello']; var term = 'Hello'; var sorted = arr.slice().sort((a,b) => { let value = 0; if (a.startsWith(term)) { value = -1; } if (a.indexOf(term) > -1) { value = -1; } if (a === term) { value = -1; } return value; }); console.log(sorted);
预期的结果是:
["Hello","Hell","Something here Hello"]
我不确定如何使用内置的排序功能来实现这一点,因为它看起来并不适合用于这样的情况.请问有什么建议吗?
解决方法
在排序回调内部,您需要返回反映两个字符串之间关系的两个值的增量.
const compareWith = term => string => { if (string === term) return 1; if (term.startsWith(string)) return 2; // switch string and term if (string.includes(term)) return 3; // use includes return Infinity; // unkNown strings move to the end }; var array = ['Something here Hello','Hello'],term = 'Hello',order = compareWith(term); array.sort((a,b) => order(a) - order(b)); console.log(array);
javascript – 使用数字排序数组而不使用sort()方法
numbers =[12,10,15,11,14,13,16];
我从今天早上开始尝试了很多东西,但我找不到怎么做.有人可以帮忙吗?我也需要解释,不仅仅是答案!
谢谢
哦,看看我现在拥有的东西:
function ordre(liste){ var result=[]; for(i=0; i<liste.length; i++){ for(j=0; j<liste.length; j++){ if(liste[i]>liste[j+1]){ } } } console.log( result ); } ordre(nombres);
解决方法
function bubbleSort(array) { var done = false; while (!done) { done = true; for (var i = 1; i < array.length; i += 1) { if (array[i - 1] > array[i]) { done = false; var tmp = array[i - 1]; array[i - 1] = array[i]; array[i] = tmp; } } } return array; } var numbers = [12,16]; bubbleSort(numbers); console.log(numbers);
javascript – 在LARGE排序数组中删除长度小于`n`的元素
首先让我解释一下我想要的东西.好吧,我有一个像这样的排序数组
var arr = ["ab", "abcd", "abdf", "abcdd", "abcdd", "abcdfd", "abcdsss", "abcdefgh", "abcdsdsdsds"];
现在我需要删除字符串长度小于5的所有元素.好的,现在我的观点是,是否有任何最简单的方法来查找字符串长度为4的元素的索引.这里有两个元素包含字符串长度4.但是我需要最后一个.如果可以获得该索引,我可以申请
arr.splice(0, (index+1));
有一件事,我的原始数组包含100万个数据.现在我该如何解决这个问题?
解决方法:
您可以使用数组过滤器删除元素.
var arr = ["ab", "abcd", "abdf", "abcdd", "abcdd", "abcdfd", "abcdsss", "abcdefgh", "abcdsdsdsds"];
arr = arr.filter(function(item) {
return item.length > 4;
});
//["abcdd", "abcdd", "abcdfd", "abcdsss", "abcdefgh", "abcdsdsdsds"]
我不知道你如何在数组中有一百万个项目,但也许你可以在将它发送到客户端之前尝试减少服务器中的数组. (我不确切知道你的数据来自哪里,但这是一个javascript数组的大量数据);
javascript – 按关键对象排序数组
我有以下结构:
var participant0 = {
name : "",
nickname : "",
number "99999"
} ;
var participant1 = {
name : "bbb",
nickname : "",
} ;
var participant2 = {
name : "",
nickname : "aaa"
} ;
var participant3 = {
name : "ccc",
nickname : ""
} ;
我有一个包含结构实例的数组:
var array = [participant0, participant3, participant1, participant2];
我想按字母顺序排列这个数组.名字第一,昵称第二名.如果这两个键不存在,我想检查数字键并将此元素放在排序列表的末尾.
预期结果 :
var array = [participant2, participant1, participant3, participant0];
(按“aaa”,“bbb”,“ccc”,“9999”排序对象)
下面的代码工作正常,按名称或昵称排序,但我不知道如果有数字键,如何将项目放在排序列表的末尾:
fav_list.sort(function(x, y) {
return (x.participant.name || x.participant.nickname).localeCompare(y.participant.name || y.participant.nickname);
});
解决方法:
我认为应该这样做,请参阅代码中的注释:
fav_list.sort(function(x, y) {
var xvalue = x.participant.name || x.participant.nickname;
var yvalue = y.participant.name || y.participant.nickname;
// By name if both have names
if (xvalue && yvalue) {
return xvalue.localeCompare(yvalue);
}
// Names always come before numbers
if (xvalue) {
return -1;
}
if (yvalue) {
return 1
}
// Otherwise compare numbers
return (x.participant.number || 0) - (y.participant.number || 0);
});
您可能希望使用最后一行中的默认数字(零).
请注意,您显示的数组与该代码不完全匹配,因为该数组直接使用参与者,但代码期望参与者位于对象的参与者属性上.
带有轻微调整数组的实例,以及一种方便的方式来说明我们最终的订单:
var participant0 = {
name: "",
nickname: "",
number: "99999",
debug: 0
};
var participant1 = {
name: "bbb",
nickname: "",
debug: 1
};
var participant2 = {
name: "",
nickname: "aaa",
debug: 2
};
var participant3 = {
name: "ccc",
nickname: "",
debug: 3
};
var array = [
{
participant: participant0
},
{
participant: participant3
},
{
participant: participant1
},
{
participant: participant2
}
];
array.sort(function(x, y) {
var xvalue = x.participant.name || x.participant.nickname;
var yvalue = y.participant.name || y.participant.nickname;
// By name if both have names
if (xvalue && yvalue) {
return xvalue.localeCompare(yvalue);
}
// Names always come before numbers
if (xvalue) {
return -1;
}
if (yvalue) {
return 1
}
// Otherwise compare numbers
return (x.participant.number || 0) - (y.participant.number || 0);
});
array.forEach(function(entry) {
snippet.log(entry.participant.debug);
});
<!-- Script provides the `snippet` object, see http://Meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
关于javascript排序数组和js 排序数组的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于javascript – JS排序数组由三种排序类型组成、javascript – 使用数字排序数组而不使用sort()方法、javascript – 在LARGE排序数组中删除长度小于`n`的元素、javascript – 按关键对象排序数组等相关内容,可以在本站寻找。
本文标签: