数组排序,空值一直排最后

3 篇文章 0 订阅
3 篇文章 0 订阅

数组排序希望实现:

不论升序还是降序,怎样实现空值始终排在最后;
如下数组


let arr =  [null,"a", "b", null, "d",undefined,""]

希望排列结果是:

// 升序
["a", "b", "d", "", null, null, undefined]
// 降序
["d", "b", "a", "", null, null, undefined]

实现方法:

onChangeOrder(list,order){
     list.sort((a,b)=>{
        if (a === b) {
            return 0;
        }else if (a == null || a === "") {
            return 1;
        }else if (b == null || b === "") {
            return -1;
        }else if (order==="ascending") {
          // 升序 
            return a < b ? -1 : 1;
        }else { 
          // 降序
            return a < b ? 1 : -1;
        }
    })
}
参考

Sort an array so that null values always come last

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
trade_create_by_buyer-CSHARP-UTF-8 │ ├app_code ┈┈┈┈┈┈┈┈┈┈类文件夹 │ │ │ ├AlipayConfig.cs┈┈┈┈┈基础配置类文件 │ │ │ ├AlipayCore.cs┈┈┈┈┈┈支付宝接口公用函数类文件 │ │ │ ├AlipayNotify.cs┈┈┈┈┈支付宝通知处理类文件 │ │ │ ├AlipaySubmit.cs┈┈┈┈┈支付宝各接口请求提交类文件 │ │ │ └MD5.cs ┈┈┈┈┈┈┈┈┈MD5类库 │ ├log┈┈┈┈┈┈┈┈┈┈┈┈┈日志文件夹 │ ├default.aspx ┈┈┈┈┈┈┈┈支付宝接口入口文件 ├default.aspx.cs┈┈┈┈┈┈┈支付宝接口入口文件 │ ├notify_url.aspx┈┈┈┈┈┈┈服务器异步通知页面文件 ├notify_url.aspx.cs ┈┈┈┈┈服务器异步通知页面文件 │ ├return_url.aspx┈┈┈┈┈┈┈页面跳转同步通知文件 ├return_url.aspx.cs ┈┈┈┈┈页面跳转同步通知文件 │ ├Web.Config ┈┈┈┈┈┈┈┈┈配置文件(集成时删除) │ └readme.txt ┈┈┈┈┈┈┈┈┈使用说明文本 ※注意※ 需要配置的文件是: alipay_config.cs default.aspx default.aspx.csreturn_url.aspx return_url.aspx.cs notify_url.aspx notify_url.aspx.cs统一命名空间为:namespace Com.Alipiay ───────── 类文件函数结构 ───────── AlipayCore.cs public static Dictionary<string, string> ParaFilter(SortedDictionary<string, string> dicArrayPre) 功能:除去数组中的空值和签名参数并以字母a到z的顺序排序 输入:SortedDictionary<string, string> dicArrayPre 过滤前的参数组 输出:Dictionary<string, string> 去掉空值与签名参数后的新签名参数组 public static string CreateLinkString(Dictionary<string, string> dicArray) 功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 输入:Dictionary<string, string> dicArray 需要拼接的数组 输出:string 拼接完成以后的字符串 public static string CreateLinkStringUrlencode(Dictionary<string, string> dicArray, Encoding code) 功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对参数值做urlencode 输入:Dictionary<string, string> dicArray 需要拼接的数组 Encoding code 字符编码 输出:string 拼接完成以后的字符串 public static void log_result(string sPath, string sWord) 功能:写日志,方便测试(看网站需求,也可以改成存入数据库) 输入:string sPath 日志的本地绝对路径 string sWord 要写入日志里的文本内容 public static string GetAbstractToMD5(Stream sFile) 功能:获取文件的md5摘要 输入:Stream sFile 文件流 输出:string MD5摘要结果 public static string GetAbstractToMD5(byte[] dataFile) 功能:获取文件的md5摘要 输入:byte[] dataFile 文件流 输出:string MD5摘要结果 ┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉ MD5.cs public static string Sign(string prestr, string key, string _input_charset) 功能:签名字符串 输入:string prestr 需要签名的字符串 string key 密钥 string _input_charset 编码格式 输出:string 签名结果 public static bool Verify(string prestr, string sign, string key, string _input_charset) 功能:验证签名 输入:string prestr 需要签名的字符串 string sign 签名结果 string key 密钥 string _input_charset 编码格式 输出:string 验证结果 ┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉ AlipayNotify.cs public Notify() 功能:构造函数 从配置文件中初始化变量 public bool Verify(SortedDictionary<string, string> inputPara, string notify_id, string sign) 功能:验证消息是否是支付宝发出的合法消息 输入:SortedDictionary<string, string> inputPara 通知返回参数数组 string notify_id 通知验证ID string sign 支付宝生成的签名结果 输出:bool 验证结果 private string GetPreSignStr(SortedDictionary<string, string> inputPara) 功能:获取待签名字符串(调试用) 输入:SortedDictionary<string, string> inputPara 通知返回参数数组 输出:string 待签名字符串 private bool GetSignVeryfy(SortedDictionary<string, string> inputPara, string sign) 功能:获取返回回来的待签名数组签名后结果 输入:SortedDictionary<string, string> inputPara 通知返回参数数组 string sign 支付宝生成的签名结果 输出:bool 签名验证结果 private string GetResponseTxt(string notify_id) 功能:获取是否是支付宝服务器发来的请求的验证结果 输入:string notify_id 通知验证ID 输出:string 验证结果 private string Get_Http(string strUrl, int timeout) 功能:获取远程服务器ATN结果 输入:string strUrl 指定URL路径地址 int timeout 超时时间设置 输出:string 服务器ATN结果字符串 ┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉ AlipaySubmit.cs private static string BuildRequestMysign(Dictionary<string, string> sPara) 功能:生成签名结果 输入:Dictionary<string, string> sPara 要签名的数组 输出:string 签名结果字符串 private static Dictionary<string, string> BuildRequestPara(SortedDictionary<string, string> sParaTemp) 功能:生成要请求给支付宝的参数数组 输入:SortedDictionary<string, string> sParaTemp 请求前的参数数组 输出:Dictionary<string, string> 要请求的参数数组 private static string BuildRequestParaToString(SortedDictionary<string, string> sParaTemp, Encoding code) 功能:生成要请求给支付宝的参数数组 输入:SortedDictionary<string, string> sParaTemp 请求前的参数数组 Encoding code 字符编码 输出:string 要请求的参数数组字符串 public static string BuildRequest(SortedDictionary<string, string> sParaTemp, string strMethod, string strButtonValue) 功能:建立请求,以表单HTML形式构造(默认) 输入:SortedDictionary<string, string> sParaTemp 请求参数数组 string strMethod 提交方式。两个值可选:post、get string strButtonValue 确认按钮显示文字 输出:string 提交表单HTML文本 public static string BuildRequest(SortedDictionary<string, string> sParaTemp) 功能:建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果 输入:SortedDictionary<string, string> sParaTemp 请求参数数组 输出:string 支付宝处理结果 public static string BuildRequest(SortedDictionary<string, string> sParaTemp, string strMethod, string fileName, byte[] data, string contentType, int lengthFile) 功能:建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果 输入:SortedDictionary<string, string> sParaTemp 请求参数数组 string strMethod 提交方式。两个值可选:post、get string fileName 文件绝对路径 byte[] data 文件数据 string contentType 文件内容类型 int lengthFile 文件长度 输出:string 支付宝处理结果 public static string Query_timestamp() 功能:用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数 输出:string 时间戳字符串 ────────── 出现问题,求助方法 ────────── 如果在集成支付宝接口时,有疑问或出现问题,可使用下面的链接,提交申请。 https://b.alipay.com/support/helperApply.htm?action=supportHome 我们会有专门的技术支持人员为您处理
接口名称:支付宝手机网站支付接口(alipay.wap.create.direct.pay.by.user)     代码版本:3.3 开发语言:ASP 版 权:支付宝()网络技术有限公司   制 作 者:支付宝技术部技术支持组 联系方式:https://support.open.alipay.com/alipay/support/index.htm 免责声明:DEMO仅供参考,实际开发中需要结合具体场景修改使用。 ───────────────────────────────── ─────── 代码文件结构 ─────── alipay.wap.create.direct.pay.by.user-CSHARP-UTF-8 │ ├class┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈类文件夹 │ │ │ ├alipay_core.asp┈┈┈┈┈┈┈┈┈┈┈┈支付宝接口公用函数文件 │ │ │ ├alipay_md5.asp ┈┈┈┈┈┈┈┈┈┈┈┈MD5签名函数文件 │ │ │ ├alipay_notify.asp┈┈┈┈┈┈┈┈┈┈┈支付宝通知处理类文件 │ │ │ ├alipay_submit.asp┈┈┈┈┈┈┈┈┈┈┈支付宝各接口请求提交类文件 │ │ │ └alipay_config.asp┈┈┈┈┈┈┈┈┈┈┈基础配置文件 │ ├log┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈日志文件夹 │ ├alipayapi.asp┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈支付宝接口入口文件 │ ├index.asp┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈支付宝调试入口页面 │ ├notify_url.asp ┈┈┈┈┈┈┈┈┈┈┈┈┈┈服务器异步通知页面文件 │ ├return_url.asp ┈┈┈┈┈┈┈┈┈┈┈┈┈┈页面跳转同步通知文件 │ └readme.txt ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈使用说明文本 ※注意※ 需要配置的文件是: alipay_config.asp alipayapi.asp notify_url.asp return_url.asp ───────── 类文件函数结构 ───────── alipay_core.asp Function CreateLinkstring(sPara) 功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 输入:Array sPara 需要拼接的数组 输出:String 拼接完成以后的字符串 Function CreateLinkstringUrlEncode(sPara) 功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并且对其做URLENCODE编码 输入:Array sPara 需要拼接的数组 输出:String 拼接完成以后的字符串 Function FilterPara(sPara) 功能:除去数组中的空值和签名参数 输入:Array sPara 签名参数组 输出:Array 去掉空值与签名参数后的新签名参数组 Function SortPara(sPara) 功能:对数组排序 输入:Array sPara 排序前的数组 输出:Array 排序后的数组 Function Md5Sign(prestr, key, input_charset) 功能:MD5签名 输入:String prestr 需要签名的字符串 String key 私钥 String input_charset 编码格式 输出:String 签名结果 Function Md5Verify(prestr, sign, key, input_charset) 功能:MD5签名 输入:String prestr 需要签名的字符串 String sign 签名结果 String key 私钥 String input_charset 编码格式 输出:String 签名结果 Function LogResult(sWord) 功能:写日志,方便测试(看网站需求,也可以改成存入数据库) 输入:String sWord 要写入日志里的文本内容 Function GetDateTimeFormat() 功能:获取当前时间 格式:年[4位]-月[2位]-日[2位] 小时[2位 24小时制]:分[2位]:秒[2位],如:2007-10-01 13:13:1
1.运行环境 本书7~10章所附代码的运行环境 Windows家族,.NET Framework 2.0及以上版本 IIS 5.0及以上版本 本书14~16章所附代码的运行环境 Windows家族,Apache 2.0及以上版本 PHP 5.0及以上版本 本书17~18章所附代码的运行环境 Windows家族,Tomcat JDK6.0 本书19~21章所附代码的调试环境 IE 6.0及以上版本 2.调试环境 本书7~10章所附代码的调试环境 Windows家族,.NET Framework 2.0及以上版本 Visual Studio 2005及以上版本、ASP.NET 2.0及以上版本 本书14~16章所附代码的调试环境 Windows家族,Apache 2.0及以上版本 PHP 5.0及以上版本 本书17~18章所附代码的调试环境 JDK6.0 Eclipse3.2+Lomboz 本书19~21章所附代码的调试环境 IE 6.0及以上版本 文本编辑器 3.本书所附光盘范例 第7章(/07/) DataTypeApplication/Default.aspx 检查和转换数据 第8章(/08/) StringApplication/StringDealwith.aspx 字符串处理 StringBuilderApplication/DealWithStringBuilder.aspx 动态字符串处理 第9章(/09/) RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/CompareCheck.aspx 数据类型检查 ASPNETValidator/CompareValue.aspx 值比较验证 ASPNETValidator/CustomClient.aspx 自定义客户端验证 ASPNETValidator/CustomServer.aspx 自定义服务器端验证 ASPNETValidator/NotNull.aspx 非空验证 ASPNETValidator/NotNullInitValue.aspx 不等于初始化值的验证 ASPNETValidator/RangeDate.aspx 日期范围验证 ASPNETValidator/RangeInt.aspx 整数范围验证 ASPNETValidator/RangeLetter.aspx 字母范围验证 ASPNETValidator/REDate.aspx 日期格式验证 ASPNETValidator/REEmail.aspx 电子邮件格式验证 ASPNETValidator/REIdentity.aspx 身份证号码格式验证 ASPNETValidator/REInt.aspx 整数格式验证 ASPNETValidator/RENumber.aspx 数值格式验证 ASPNETValidator/REPhone.aspx 电话号码格式验证 ASPNETValidator/REUrl.aspx URL地址格式验证 ASPNETValidator/SummaryDialog.aspx 对话框式验证摘要 ASPNETValidator/SummaryPage.aspx 网页式验证摘要 第11章(/11/) 判断是否为对象.asp 判断是否为对象 判断是否为数值.asp 判断是否为数值 判断是否为数组.asp 判断是否为数组 判断是否为日期.asp 判断是否为日期 判断是否为空.asp 判断是否为空 判断是否为空值.asp 判断是否为空值 获取变量类型信息.asp 获取变量类型信息 第12章(/11/) 从中截取字符串.asp 从中截取字符串 切分字符串.asp 切分字符串 删除字符串前后导空格.asp 删除字符串前导空格.asp 删除字符串后导空格.asp 反向截取字符串.asp 反向查找字符串.asp 字符串倒序列.asp 字符串大写转化.asp 字符串小写转化.asp 字符串替换.asp 将数组元素连接为字符串.asp 构造制定字符串.asp 正向截取字符串.asp 正向查找字符串.asp 获取字符串长度.asp 第13章(/14/) Matches集合与Macth对象.asp 指定忽略大小写.asp 获取Matches集合.asp 进行正则匹配替换.asp 进行正则匹配检验.asp 第14章(/14/) 浮点型数据测试.php 浮点型数据测试 字符串数据测试.php 字符串数据测试 数组数据测试.php 数组数据测试 对象测试.php 对象测试 数据类型识别.php 数据类型识别 强制类型转化.php 强制类型转化 计算圆周面积程序.php 计算圆周面积程序 字符串转化.php 字符串转化 数值转化.php 数值转化 数组转化.php 数组转化 第15章(/15/) 计算字符串的长度.php 计算字符串的长度 访问单个字符.php 访问单个字符 检索字符的位置.php 检索字符的位置 截取子字符.php 截取子字符 查找字符串出现的次数.php 查找字符串出现的次数 替换子字符串.php 替换子字符串 按照特定字符进行分割.php 按照特定字符进行分割 按照指定数目进行分割.php 按照指定数目进行分割 删除字符串的空白.php 删除字符串的空白 字符串的填补.php 字符串的填补 字符串大小写的转换.php 字符串大小写的转换 字符串的反转.php 字符串的反转 字符串按ASCII码顺序比较.php 字符串按ASCII码顺序比较 字符串按“自然排序”法比较.php 字符串按“自然排序”法比较 根据单词的发音比较.php 根据单词的发音比较 根据单词的相似性比较.php 根据单词的相似性比较 查找子字符串.php 查找子字符串 搜寻出现的字符.php 搜寻出现的字符 字符匹配.php 字符匹配 字符替换.php 字符替换 字符串翻译.php 字符串翻译 格式化数字.php 格式化数字 格式化表单字符串.php 格式化表单字符串 24.php 格式化字符串 25.php 格式化HTML实体 26.php HTML标签的清理 解析URL字符串.php 解析URL字符串 解析查询字符串.php 解析查询字符串 URL编码处理.php URL编码处理 查询字符串的构造.php 查询字符串的构造 第16章(/16/) 字符串模式匹配.php 字符串模式匹配 字符串大小模式匹配.php 字符串大小模式匹配 日期字符串模式匹配.php 日期字符串模式匹配 模式替换.php 模式替换 模式分割.php 模式分割 正则表达式匹配.php 正则表达式匹配 其他的正则表达式匹配.php 其他的正则表达式匹配 取得正则表达式的全部匹配.php 取得正则表达式的全部匹配 返回与模式匹配的数组单元.php 返回与模式匹配的数组单元 正则表达式的替换.php 正则表达式的替换 正则表达式的拆分.php 正则表达式的拆分 表单验证.php 表单验证 UBBCode.php UBB代码 ubb.html UBB代码输入界面 ubb.php UBB代码输出界面 Apache日志分析.php Apache日志分析 第17章(/17/) JSPExample1.jsp JSP页面中整型数据的使用 JSPExample2.jsp JSP页面中循环输出整型数据 JSPExample3.jsp 计算一光年的距离 JSPExample4.jsp JSP页面中计算圆的面积 JSPExample5.jsp JSP页面中字符数据的简单使用 JSPExample6.jsp 结合布尔类型变量判断学生成绩等级 JSPExample7.jsp text.html页面提交至该页,并显示提交数据 text.html 页面数据提交至JSPExample7.jsp JSPExample8.jsp 不同类型混合运算自动转换 JSPExample9.jsp 不同类型混合运算强制转换 JSPExample10.jsp 字符串类型与其他数据类型的转换 JSPExample11.jsp 解析字符串的子字符串 stringOP.html 页面数据提交至JSPExample12.jsp JSPExample12.jsp 字符串替换 JSPExample13.jsp 字符串大小写转换、反转等操作 logon.html 页面数据提交至JSPExample14.jsp JSPExample14.jsp 字符串数据的比较 JSPExample15.jsp 字符串数据的连接 JSPExample16.jsp 字符串数据的格式化 第18章(/18/) 1.jsp Pattern对象使用split方法示例一 2.jsp Pattern对象使用split方法示例二 3.jsp Matcher对象使用appendReplacement方法示例 4.jsp Matcher对象使用groupCount方法示例 5.jsp Matcher对象使用find方法示例 6.jsp Matcher对象使用group方法示例 7.jsp 字符串对象使用split方法 8.jsp Matcher对象使用replaceAll方法示例 9.html 页面数据提交至9.jsp 9.jsp 利用正则表达式验证邮箱地址 10.html 页面数据提交至10.jsp 10.jsp 利用正则表达式验证URL地址 11.html 页面数据提交至11.jsp 11.jsp 利用正则表达式验证电话号码 第20章(/20/) 从字符串中提取子串(1).html 从字符串中提取子串(1) 从字符串中提取子串(2).html 从字符串中提取子串(2) 从字符串中提取子串(3).html 从字符串中提取子串(3) 删除或替换数组中部分数据.html 删除或替换数组中部分数据 删除数组最后一个元素.html 删除数组最后一个元素 删除数组中的第一个元素.html 删除数组中的第一个元素 反序数组中的元素.html 反序数组中的元素 在字符串上加入超级链接.html 在字符串上加入超级链接 在字符串两端加上小字体标记.html 在字符串两端加上小字体标记 在字符串两端加入上标标签.html 在字符串两端加入上标标签 在字符串两端加入下标标签.html 在字符串两端加入下标标签 在字符串两端加入斜体标签.html 在字符串两端加入斜体标签 在字符串两端加入锚点标志.html 在字符串两端加入锚点标志 在字符串的两端加上固定宽度字体标记.html 在字符串的两端加上固定宽度字体标记 在字符串的两端加上粗体标志.html 在字符串的两端加上粗体标志 在字符串的两端加入下划线标记.html 在字符串的两端加入下划线标记 在指定字符串的两端加上大字体标志.html 在指定字符串的两端加上大字体标志 在数组前面插入数据.html 在数组前面插入数据 对数组中的元素进行排序.html 对数组中的元素进行排序 将一个或多个字符串连接到当前字符串的末尾.html 将一个或多个字符串连接到当前字符串的末尾 将字符串分割并存储到数组中.html 将字符串分割并存储到数组中 将字符串转化为大写格式.html 将字符串转化为大写格式 将字符串转化为小写格式.html 将字符串转化为小写格式 将指定的数据添加到数组中.html 将指定的数据添加到数组中 将数组元素连接为字符串.html 将数组元素连接为字符串 替换字符串中指定的内容.html 替换字符串中指定的内容 根据指定的Unicode编码返回一个字符串.html 根据指定的Unicode编码返回一个字符串 比较两个字符串的大小.html 比较两个字符串的大小 获取字符串的长度.html 获取字符串的长度 获取指定位置的字符的Unicode编码.html 获取指定位置的字符的Unicode编码 获取指定字符(串)第一次在字符串中出现的位置.html 获取指定字符(串)第一次在字符串中出现的位置 获取数组中的一部分数据.html 获取数组中的一部分数据 设置字符串输出时的前景色.html 设置字符串输出时的前景色 设置字符串输出时的字体大小.html 设置字符串输出时的字体大小 返回一个包含数组中全部数据的字符串.html 返回一个包含数组中全部数据的字符串 返回字符串中指定位置处的字符.html 返回字符串中指定位置处的字符 连接其他数组到当前数组末尾.html 连接其他数组到当前数组末尾 第21章(/21/) 判断字符串中是否存在匹配内容.html 判断字符串中是否存在匹配内容 对字符串进行匹配检测.html 对字符串进行匹配检测 替换字符串中的指定内容.html 替换字符串中的指定内容 编译正则表达式.html 编译正则表达式 获取与正则表达式进行匹配检测的字符串.html 获取与正则表达式进行匹配检测的字符串 获取匹配内容右侧的字符信息.html 获取匹配内容右侧的字符信息 获取匹配内容左侧的字符信息.html 获取匹配内容左侧的字符信息 获取匹配的内容的最后一个索引位置.html 获取匹配的内容的最后一个索引位置 获取子匹配的结果.html 获取子匹配的结果 获取字符串中所有的匹配信息.html 获取字符串中所有的匹配信息 获取最近一次匹配的内容.html 获取最近一次匹配的内容 获取最近一次匹配的最后一个子匹配.html 获取最近一次匹配的最后一个子匹配 获取第一次匹配的起始位置(1).html 获取第一次匹配的起始位置(1) 获取第一次匹配的起始位置(2).html 获取第一次匹配的起始位置(2)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值