相关疑难解决方法(0)

按键排序JavaScript对象

我需要按键对JavaScript对象进行排序.

因此如下:

{ 'b' : 'asdsad', 'c' : 'masdas', 'a' : 'dsfdsfsdf' }
Run Code Online (Sandbox Code Playgroud)

会成为:

{ 'a' : 'dsfdsfsdf', 'b' : 'asdsad', 'c' : 'masdas' }
Run Code Online (Sandbox Code Playgroud)

javascript sorting

456
推荐指数
21
解决办法
47万
查看次数

最好的JavaScript压缩器

什么是最好的JavaScript压缩器?我正在寻找一种工具:

  • 很容易使用
  • 具有高压缩率
  • 产生可靠的最终结果(不会弄乱代码)

javascript compression

170
推荐指数
5
解决办法
11万
查看次数

如何缩短开关案例块将数字转换为月份名称?

有没有办法在更少的行上写这个,但仍然容易阅读?

var month = '';

switch(mm) {
    case '1':
        month = 'January';
        break;
    case '2':
        month = 'February';
        break;
    case '3':
        month = 'March';
        break;
    case '4':
        month = 'April';
        break;
    case '5':
        month = 'May';
        break;
    case '6':
        month = 'June';
        break;
    case '7':
        month = 'July';
        break;
    case '8':
        month = 'August';
        break;
    case '9':
        month = 'September';
        break;
    case '10':
        month = 'October';
        break;
    case '11':
        month = 'November';
        break;
    case '12':
        month = 'December';
        break;
}
Run Code Online (Sandbox Code Playgroud)

javascript date date-format switch-statement

110
推荐指数
11
解决办法
7616
查看次数

使用ES6在Javascript中枚举

我正在用Javascript重建一个旧的Java项目,并意识到在JS中没有好的方法来做枚举.

我能想到的最好的是:

const Colors = {
    RED: Symbol("red"),
    BLUE: Symbol("blue"),
    GREEN: Symbol("green")
};
Object.freeze(Colors);
Run Code Online (Sandbox Code Playgroud)

const保持Colors被重新分配,并冷冻它防止突变的键和值.我正在使用符号,这Colors.RED是不等于0,或除了它自己之外的任何其他东西.

这个配方有问题吗?有没有更好的办法?


(我知道这个问题有点重复,但以前的Q/As都很老了,ES6给了我们一些新功能.)


编辑:

另一个解决序列化问题的解决方案,但我认为仍存在领域问题:

const enumValue = (name) => Object.freeze({toString: () => name});

const Colors = Object.freeze({
    RED: enumValue("Colors.RED"),
    BLUE: enumValue("Colors.BLUE"),
    GREEN: enumValue("Colors.GREEN")
});
Run Code Online (Sandbox Code Playgroud)

通过使用对象引用作为值,可以获得与Symbols相同的冲突避免.

javascript enums symbols immutability ecmascript-6

106
推荐指数
8
解决办法
8万
查看次数

"锁定"JavaScript对象的任何性能优势?

JavaScript 1.8.5(ECMAScript 5)添加了一些有趣的方法,可以防止将来修改传递的对象,具有不同程度的彻底性:

据推测,这些问题的关键在于捕获错误:如果您知道在某个点之后不想修改对象,则可以将其锁定,以便在以后无意中尝试修改时会抛出错误.("use strict";假设你已经完成了.)

我的问题:在现代JS引擎(如V8)中,使用上述方法锁定对象时是否有任何性能优势(例如,更快的属性查找,减少内存占用)?

(另请参阅John Resig的好解释 - 但不提及性能.)

javascript ecmascript-5 javascript-1.8

66
推荐指数
4
解决办法
1万
查看次数

用jQuery枚举?

$("#bc [id$=_dropdownID]").change(function() {
    if (this.value == '2' || this.value == '3') {
        $("#bc .pnl").show();
    }
    else {
        $("#bc .pnl").hide();
    }
Run Code Online (Sandbox Code Playgroud)

我在jQuery中有以下代码.有没有什么办法可以用ac#enum替换上面代码中的硬编码常量2和3?jQuery是否支持枚举,如果是,如何实现?任何建议欢迎....

javascript jquery enums

19
推荐指数
1
解决办法
3万
查看次数

17
推荐指数
0
解决办法
1万
查看次数

AngularJS中Enums的最佳解决方案?

我很难找到一个优雅的Enums解决方案,尤其是使用AngularJS在Enums中搜索.

让我描述一下情况以及我是如何处理它的:假设我有一个名为Event This的事件有这两个属性:SeverityStatus.两者都是Enums,由ID(1,2,3)和Title(严重性:"Light","Normal","Important"和Status:"Open","Closed","Pending Approval")定义

来自服务的Event对象具有Enums的ID,当我想显示我与{{ severityIdToTitle(Event.Severity) }} SeverityIdtoTitle 绑定的对象时,我的控制器上的一个方法调用我的服务上的方法,该方法返回基于该方法的Enum的值. id recieved当我希望用户能够通过文本搜索对象时出现问题,AngularJS过滤器不知道Enum的实际"字符串"值,所以我遇到了我的问题.

我知道很多关于这方面的解决方法,并且有一些选择,但我想知道什么是优雅和干净的解决方案呢?我做了什么使事情变得复杂,有更好的方法吗?

多谢你们!

enums angularjs

12
推荐指数
1
解决办法
2万
查看次数

将枚举转换为值数组(将所有JSON值放入数组中)

在JavaScript中使用这个方法枚举?在我们的代码中创建枚举..

所以

var types = {
  "WHITE" : 0,
  "BLACK" : 1
}
Run Code Online (Sandbox Code Playgroud)

现在问题是当我想在任何地方创建验证时,我必须这样做;

model.validate("typesColumn", [ types.WHITE, types.BLACK ]);
Run Code Online (Sandbox Code Playgroud)

现在有一种方法可以简单地将类型中的值转换为数组,这样我就不必列出枚举的所有值吗?

model.validate("typesColumn", types.ValuesInArray]);
Run Code Online (Sandbox Code Playgroud)

编辑:我创建了一个非常简单的枚举库来生成简单的枚举npm --save-dev install simple-enum(https://www.npmjs.com/package/simple-enum)

javascript enums json node.js

8
推荐指数
3
解决办法
2万
查看次数

有没有办法在Javascript中拥有/锁定Enum对象的唯一索引值?

阅读在Javascript 中处理ENUM类型"推荐方法",我仍然不确定,因为我可以将值与伪造值进行比较,而我应该只比较"枚举"类型值:

 var DaysEnum = {"monday":1, "tuesday":2, "wednesday":3, ...}
 Object.freeze(DaysEnum)

 switch( day ){
   case "monday":
     return "Hello"
   case "tuesday":
     return "Hi"
   case "blahblahday":
     return "No"
 }
Run Code Online (Sandbox Code Playgroud)

我进行比较的字符串("星期一","星期二","blahblahday")完全没有我的"枚举类型:DaysEnum",可以由用户提供,这可能会导致一些未发现的细微错误由翻译(如拼写错误).

有没有办法拥有/锁定Enum对象的唯一索引值?

javascript enums

8
推荐指数
1
解决办法
338
查看次数