Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序以字母开头的数组字符串_Javascript_Node.js_Sorting_Node Webkit - Fatal编程技术网

Javascript 排序以字母开头的数组字符串

Javascript 排序以字母开头的数组字符串,javascript,node.js,sorting,node-webkit,Javascript,Node.js,Sorting,Node Webkit,如何对该数组列表进行排序,以确保所有以开头的文件都是第一个 上下文:用于加载程序,我希望确保首先使用加载所有文件 列表是从扫描中随机生成的,所以我永远无法确定顺序 0:"js\game\global\app.js" 1:"js\game\global\camera.js" 2:"js\game\global\displayGroups.js" 3:"js\game\global\dataBase.js" 4:"js\game\global\mouse.js" 5:"js\game\global\

如何对该数组列表进行排序,以确保所有以
开头的文件都是第一个

上下文:用于加载程序,我希望确保首先使用
加载所有文件

列表是从扫描中随机生成的,所以我永远无法确定顺序

0:"js\game\global\app.js"
1:"js\game\global\camera.js"
2:"js\game\global\displayGroups.js"
3:"js\game\global\dataBase.js"
4:"js\game\global\mouse.js"
5:"js\game\global\loaders.js"
6:"js\game\global\stage.js"
7:"js\game\global\polyfill.js"
8:"js\game\scenes\scene_boot.js"
9:"js\game\scenes\scene_IntroVideo.js"
10:"js\game\scenes\scene_loader.js"
11:"js\game\scenes\scene_Map1.js"
12:"js\game\scenes\_scene_base.js" //need to be alway first
13:"js\game\scenes\scene_Title.js"
因此,在本例中,排序后,文件
\u scene\u base
应位于第一位

这是我的测试代码,但它显示不稳定,我不知道为什么,有时它不工作

 files.sort((a,b) => {return a.indexOf("\_")>-1?-files.indexOf(a):0 });

抱歉,如果我的英语很差。

如果你想将任何以下划线开头的文件排在第一位,请过滤并连接它

const arr=['js\\game\\global\\app.js',
'js\\game\\global\\camera.js',
“js\\game\\global\\displayGroups.js”,
“js\\game\\global\\dataBase.js”,
'js\\game\\global\\mouse.js',
'js\\game\\global\\loaders.js',
“js\\game\\global\\stage.js”,
'js\\game\\global\\polyfill.js',
'js\\game\\scenes\\scene\u boot.js',
“js\\game\\scenes\\scene\u IntroVideo.js”,
“js\\game\\scenes\\scene\u loader.js”,
“js\\game\\scenes\\scene\u Map1.js”,
“js\\game\\scenes\\\场景\基础.js”,
'js\\game\\scenes\\scene\u Title.js'
]
const\u files=arr.filter(e=>e.indexOf('\\\')!==-1.sort()
const files=arr.filter(e=>e.indexOf('\\\'=-1).sort()
const arr2=_files.concat(文件)

log(arr2)
您可以简单地替换下划线进行排序,并将这些字符串放在目录顶部

var-array=[“js\\game\\global\\app.js”、“js\\game\\global\\camera.js”、“js\\game\\global\\displayGroups.js”、“js\\game\\global\\dataBase.js”、“js\\game\\global\\loaders.js”、“js\\game\\global\\stage.js”、“js\\game\\global\\polyfill.js”、“js\\game\\scenes\\scenes\\scene\\scene\u boot.js”、“js\\game\\game\\scene,“js\\game\\scenes\\scene\u loader.js”,“js\\game\\scenes\\scene\u Map1.js”,“js\\game\\scenes\\\u scene\u base.js”,“js\\game\\scenes\\scene\u Title.js”]
array.sort((a,b)=>a.replace(/\ug')).localeCompare(b.replace(/\ug'));
console.log(数组)

.as控制台包装{max height:100%!important;top:0;}
只需使用
Array.sort()
传入您自己的自定义比较器,并使用
String.startWith()
检查文件名是否以“quo”开头: 请尝试以下操作:

let-arr=['js\\game\\global\\app.js'、'js\\game\\global\\camera.js'、'js\\game\\global\\displayGroups.js'、'js\\game\\global\\mouse.js'、'js\\game\\global\\stage.js'、'js\\game\\global\\polyfill.js'、'js\\game\\scenes\\scenes\\scene\\scene\u boot.js'、'js\\game\\game\\scenes\\scenes\\scene\\\\场景加载器.js'、'js\\game\\scenes\\scene\u Map1.js'、'js\\game\\scenes\\\u scene\u base.js'、'js\\game\\scenes\\scene\u Title.js'];
arr.sort((a,b)=>{
让str1Array=a.split(\\”;
让str2Array=b.split(\\”;
返回str2Array[str2Array.length-1].startsWith(“\u”)-str1Array[str1Array.length-1].startsWith(“\u”)
});

console.log(arr);
另一种基于
indexOf
和下划线的第一个位置的解决方案

const arr=[
'js\\game\\global\\app.js',
'js\\game\\global\\camera.js',
“js\\game\\global\\displayGroups.js”,
“js\\game\\global\\dataBase.js”,
'js\\game\\global\\mouse.js',
'js\\game\\global\\loaders.js',
“js\\game\\global\\stage.js”,
'js\\game\\global\\polyfill.js',
'js\\game\\scenes\\scene\u boot.js',
“js\\game\\scenes\\scene\u IntroVideo.js”,
“js\\game\\scenes\\scene\u loader.js”,
“js\\game\\scenes\\scene\u Map1.js”,
“js\\game\\scenes\\scene\u Title.js”,
“js\\game\\scenes\\\场景\基础.js”,
“js\\game\\scenes\\scene\u Loader.js”,
“js\\game\\scenes\\\u scenebase.js”,
'js\\game\\scenes\\sceneTit\u le.js',
'js\\game\\scenes\\scene\u introVide\u o.js',
“js\\game\\scenes\\sceneIntroVi\u deo.js”,
];
arr.sort((a,b)=>{
常数ai=a.indexOf(“"”);
常数bi=b.indexOf(“”“);
返回(ai>-1&&bi>-1&&(ai-bi))| |-1;
});

console.log(arr)
请在排序后添加一个数组作为数据和所需结果。首先是什么?