我有一个我希望根据attr
字符串类型字段排序的对象列表.我试过用-
list.sort(function (a, b) {
return a.attr - b.attr
})
Run Code Online (Sandbox Code Playgroud)
但发现-
在JavaScript 中似乎不适用于字符串.如何根据类型字符串的属性对对象列表进行排序?
任何人都拥有良好的资源或在C#中为FileInfo
数组提供自然顺序排序的样本?我正在实现IComparer
我的各种界面.
从这个原始问题,我将如何在多个字段上应用排序?
使用这种略微适应的结构,我如何排序城市(升序)然后价格(降序)?
var homes = [
{"h_id":"3",
"city":"Dallas",
"state":"TX",
"zip":"75201",
"price":"162500"},
{"h_id":"4",
"city":"Bevery Hills",
"state":"CA",
"zip":"90210",
"price":"319250"},
{"h_id":"6",
"city":"Dallas",
"state":"TX",
"zip":"75000",
"price":"556699"},
{"h_id":"5",
"city":"New York",
"state":"NY",
"zip":"00010",
"price":"962500"}
];
Run Code Online (Sandbox Code Playgroud)
我喜欢这个事实而不是给出一个通用方法的答案.在我计划使用此代码的地方,我将不得不对日期以及其他内容进行排序."引导"物体的能力似乎很方便,如果不是有点麻烦.
我试图将这个答案构建成一个很好的通用示例,但我没有太多运气.
我有jQuery,但我不确定它是否有任何内置的排序助手.我可以让每个项目的一个二维数组text
,value
和selected
属性,但我不认为JavaScript的内置Array.sort()
将正常工作.
我不知道这是否可行,但这里有.使用回调使得它变得更加困难.
我有一个带有html文件的目录,我想用node.js和socket.io以Object块的形式发送回客户端.
我的所有文件都在/ tmpl中
所以socket需要读取/ tmpl中的所有文件.
对于每个文件,它必须将数据存储在以文件名作为键的对象中,并将内容作为值存储.
var data;
// this is wrong because it has to loop trough all files.
fs.readFile(__dirname + '/tmpl/filename.html', 'utf8', function(err, html){
if(err) throw err;
//filename must be without .html at the end
data['filename'] = html;
});
socket.emit('init', {data: data});
Run Code Online (Sandbox Code Playgroud)
最后的回调也是错误的.必须在目录中的所有文件完成时调用它.
但我不知道如何创建代码,任何人都知道这是否可能?
我有一个像阵列;
["IL0 Foo", "PI0 Bar", "IL10 Baz", "IL3 Bob says hello"]
Run Code Online (Sandbox Code Playgroud)
并且需要对它进行排序以使它看起来像;
["IL0 Foo", "IL3 Bob says hello", "IL10 Baz", "PI0 Bar"]
Run Code Online (Sandbox Code Playgroud)
我尝试过一种排序功能;
function compare(a,b) {
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是这给了订单
["IL0 Foo", "IL10 Baz", "IL3 Bob says hello", "PI0 Bar"]
Run Code Online (Sandbox Code Playgroud)
我试图想到一个可行的正则表达式,但无法理解它.
如果它有助于格式将始终是2个字母,x数量的数字,然后任意数量的字符.
我从一本书中看到了这段代码:
var a = "one";
var b = "four";
a>b; // will return true
Run Code Online (Sandbox Code Playgroud)
但它没有提到为什么"一个"大于"四个".我试过c = "a"
,它比a和b小.我想知道JavaScript如何比较这些字符串.
假设我有一个数组
var arr = [1,5,"ahsldk",10,55,3,2,7,8,1,2,75,"abc","huds"];
Run Code Online (Sandbox Code Playgroud)
我尝试对它进行排序,我得到类似的东西......
[1, 1, 10, 2, 2, 3, 5, 55, 7, 75, 8, "abc", "ahsldk", "huds"]
Run Code Online (Sandbox Code Playgroud)
通知10是在2之前,我怎么能有更多的东西
[1,1,2,2,3,5 ..., "abc", "ahs...",...]
Run Code Online (Sandbox Code Playgroud) 我有一个包含数组的数组,我想根据内部特定列中的值对外部数组进行排序.
我打赌这听起来有点混乱,所以我会直接跳到一个例子.
初步数据:
var data = [
[
"row_1-col1",
"2-row_1-col2",
"c-row_1-coln"
],
[
"row_2-col1",
"1-row_2-col2",
"b-row_2-coln"
],
[
"row_m-col1",
"3-row_m-col2",
"a-row_m-coln"
]
];
Run Code Online (Sandbox Code Playgroud)
根据索引为1的列对数据进行排序
data.sortFuncOfSomeKind(1);
Run Code Online (Sandbox Code Playgroud)
然后对象看起来像这样;
var data = [
[
"row_2-col1",
"1-row_2-col2",
"b-row_2-coln"
],
[
"row_1-col1",
"2-row_1-col2",
"c-row_1-coln"
],
[
"row_m-col1",
"3-row_m-col2",
"a-row_m-coln"
]
];
Run Code Online (Sandbox Code Playgroud)
根据索引为2的列对数据进行排序
data.sortFuncOfSomeKind(2);
Run Code Online (Sandbox Code Playgroud)
然后对象看起来像这样;
var data = [
[
"row_m-col1",
"3-row_m-col2",
"a-row_m-coln"
],
[
"row_2-col1",
"1-row_2-col2",
"b-row_2-coln"
],
[
"row_1-col1",
"2-row_1-col2",
"c-row_1-coln"
]
];
Run Code Online (Sandbox Code Playgroud)
大Q.
你知道吗,或者我必须自己写一个解决方案吗?如果是这样,哪个是最容易使用的排序算法?快速排序?
_L
我试图在javascript中使用动态创建的SELECT OPTIONS列表.
我无法访问源代码,否则我会从服务器代码中更改此内容.
这是选择:
<select class="text12 width_constrained" name="/web/personalisation/request/DesignConsultationRequestFormHandler.addressItem">
<option value="1|Marsh Gardens||Southampton, Hedge End|Hampshire|SO30 2XN|United Kingdom|false|false|false|false|false|false|false">1 Marsh Gardens, Southampton, Hedge End, SO30 2XN</option>
<option value="3|Marsh Gardens||Southampton, Hedge End|Hampshire|SO30 2XN|United Kingdom|false|false|false|false|false|false|false">3 Marsh Gardens, Southampton, Hedge End, SO30 2XN</option>
<option value="5|Marsh Gardens||Southampton, Hedge End|Hampshire|SO30 2XN|United Kingdom|false|false|false|false|false|false|false">5 Marsh Gardens, Southampton, Hedge End, SO30 2XN</option>
<option value="7|Marsh Gardens||Southampton, Hedge End|Hampshire|SO30 2XN|United Kingdom|false|false|false|false|false|false|false">7 Marsh Gardens, Southampton, Hedge End, SO30 2XN</option>
<option value="9|Marsh Gardens||Southampton, Hedge End|Hampshire|SO30 2XN|United Kingdom|false|false|false|false|false|false|false">9 Marsh Gardens, Southampton, Hedge End, SO30 2XN</option>
<option value="11|Marsh …
Run Code Online (Sandbox Code Playgroud) javascript ×8
sorting ×6
arrays ×3
jquery ×3
string ×2
algorithm ×1
c# ×1
compare ×1
file ×1
html-select ×1
natural-sort ×1
node.js ×1