相关疑难解决方法(0)

将数组元素从一个数组位置移动到另一个数组位置

我很难搞清楚如何移动数组元素.例如,给出以下内容:

var arr = [ 'a', 'b', 'c', 'd', 'e'];
Run Code Online (Sandbox Code Playgroud)

我怎么能写一个'd'以前移动的函数'b'

还是'a'之后'c'

移动后,应更新其余元素的索引.这意味着在第一个例子中,移动arr [0]将='a',arr [1] ='d'arr [2] ='b',arr [3] ='c',arr [4] = 'E'

这看起来应该很简单,但我无法绕过它.

javascript arrays

464
推荐指数
17
解决办法
37万
查看次数

逗号在JavaScript表达式中做了什么?

如果我使用:

1.09 * 1; // returns "1.09"
Run Code Online (Sandbox Code Playgroud)

但如果我使用:

1,09 * 1; // returns "9"
Run Code Online (Sandbox Code Playgroud)

我知道1,09不是一个数字.

逗号在最后一段代码中做了什么?

更多例子

if (0,9) alert("ok"); // alert
if (9,0) alert("ok"); // don't alert
Run Code Online (Sandbox Code Playgroud)
alert(1); alert(2); alert(3); // 3 alerts
alert(1), alert(2), alert(3); // 3 alerts too
Run Code Online (Sandbox Code Playgroud)
alert("2",
    foo = function (param) {
        alert(param)
    },
    foo('1')
)
foo('3'); // alerts 1, 2 and 3
Run Code Online (Sandbox Code Playgroud)

javascript comma-operator

81
推荐指数
2
解决办法
9504
查看次数

如何在javascript/lodash中将字符串数组转换为键控对象

鉴于阵列:

var arr = [ "one", "two", "three" ];
Run Code Online (Sandbox Code Playgroud)

什么是最简单的方法将其转换为:

{ "one": true, "two": true, "three": true }
Run Code Online (Sandbox Code Playgroud)

我试过以下但我想有更好的方法.

 _.zipObject(arr || {}, _.fill([], true, 0, arr.length))
Run Code Online (Sandbox Code Playgroud)

javascript lodash

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

当阅读缩小的 Javascript 时,我应该如何阅读带有逗号、&& 和 || 的返回语句 运营商?

我有这个源代码:

function findMessageErrors(btn) {
    var error = "";
    var message = $(btn).parent().siblings().find("textarea[name='message']").val();
    if (message === "") {
        error += "*Please enter a message.<br/>";
    }
    if (!$(btn).parent().siblings().find('input[name="agree"]').prop('checked')) {
        error += "*Please agree.<br/>";
    }
    return error;
}
Run Code Online (Sandbox Code Playgroud)

这会被缩小。缩小后,它在 Chrome 开发工具的 Sources 选项卡中看起来像这样:

function findMessageErrors(btn) {
    var error = "";
    return "" === $(btn).parent().siblings().find("textarea[name='message']").val() && (error += "*Please enter a message.<br/>"),
    $(btn).parent().siblings().find('input[name="agree"]').prop("checked") || (error += "*Please agree.<br/>"),
    error
}
Run Code Online (Sandbox Code Playgroud)

我理解逗号运算符如何“按顺序运行一系列表达式,然后返回最后一个表达式的结果” (来自此处)。但我很难理解这些 OR 和 AND 运算符如何构建在缩小代码中返回的字符串。

有谁有一种有用的方法来大声朗读它,以帮助我理解它是如何工作的?我想我没有看到源代码中的 2 个独立 IF 语句如何被缩小为一系列 && 然后 …

javascript minify

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

在return语句之后具有多个值的意义是什么?

我在搞乱AST树解析器,发现一个ReturnStatement可以有多个expressions。如下面的代码片段所示,return语句后有多个值,但代码已编译并成功运行(它返回的最后一个值)。

function test() {
  return 1, 2, 3;
}

console.log(test());
Run Code Online (Sandbox Code Playgroud)

AST形式:

{
    "type": "ReturnStatement",
    "start": 13,
    "end": 24,
    "argument": {
        "type": "SequenceExpression",
        "start": 20,
        "end": 23,
        "expressions": [{
            "type": "Literal",
            "start": 27,
            "end": 28,
            "value": 1,
            "raw": "1"
        }, {
            "type": "Literal",
            "start": 30,
            "end": 31,
            "value": 2,
            "raw": "2"
        }, {
            "type": "Literal",
            "start": 33,
            "end": 34,
            "value": 2,
            "raw": "3"
        }]
    }
}
Run Code Online (Sandbox Code Playgroud)

此功能和/或错误的意义是什么?
您什么时候要使用此语法?

javascript return

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

标签 统计

javascript ×5

arrays ×1

comma-operator ×1

lodash ×1

minify ×1

return ×1