相关疑难解决方法(0)

如何在JavaScript中创建二维数组?

我一直在网上阅读,有些地方说这是不可能的,有人说它是,然后给出一个例子,其他人反驳这个例子,等等.

  1. 如何在JavaScript中声明二维数组?(假设有可能)

  2. 我如何访问其成员?(myArray[0][1]myArray[0,1]?)

javascript arrays multidimensional-array

1081
推荐指数
33
解决办法
193万
查看次数

在ES6/Typescript中使用_(下划线)变量和箭头函数

我在一个Angular示例中遇到了这个构造,我想知道为什么选择它:

_ => console.log('Not using any parameters');
Run Code Online (Sandbox Code Playgroud)

我理解变量_意味着不关心/不使用但因为它是唯一的变量是有任何理由更喜欢使用_ over:

() => console.log('Not using any parameters');
Run Code Online (Sandbox Code Playgroud)

当然,这不能是一个字符少于键入.()语法在我看来更好地传达了intent,并且更具特定类型,因为否则我认为第一个示例应该是这样的:

(_: any) => console.log('Not using any parameters');
Run Code Online (Sandbox Code Playgroud)

如果重要,这就是使用它的背景:

submit(query: string): void {
    this.router.navigate(['search'], { queryParams: { query: query } })
      .then(_ => this.search());
}
Run Code Online (Sandbox Code Playgroud)

javascript typescript ecmascript-6 arrow-functions

98
推荐指数
4
解决办法
3万
查看次数

指定_(下划线)变量的位置和方式是什么?

大多数人都知道_IRB作为最后回报值的持有人的特殊含义,但这不是我在这里要求的.

相反,我问的是什么_时候用作普通旧Ruby代码中的变量名.在这里它似乎有特殊的行为,类似于"不关心变量"(àlaProlog).以下是一些说明其独特行为的有用示例:

lambda { |x, x| 42 }            # SyntaxError: duplicated argument name
lambda { |_, _| 42 }.call(4, 2) # => 42
lambda { |_, _| 42 }.call(_, _) # NameError: undefined local variable or method `_'
lambda { |_| _ + 1 }.call(42)   # => 43
lambda { |_, _| _ }.call(4, 2)  # 1.8.7: => 2
                                # 1.9.3: => 4
_ = 42
_ * 100         # => 4200 …
Run Code Online (Sandbox Code Playgroud)

ruby

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

下划线作为JavaScript变量?

这篇文章中,Nick Craver提供了一个答案:

function(_, id)
Run Code Online (Sandbox Code Playgroud)

在使用它之前,此代码不会将下划线声明为变量.我在谷歌和此处的搜索仅指向使用下划线作为前缀的引用,而不是作为变量本身.它有什么作用?我喜欢Nick的解决方案,但这让我感到烦恼.

javascript

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

使用对象分解时忽略属性变量

这是一个例子:

const initObject = {
  a: 0,
  b: 0,
  c: 0
}

const { a, ...rest } = initObject
Run Code Online (Sandbox Code Playgroud)

我们a从对象中省略属性,但随后const a为它分配了一个值,但从未使用过-eslint(无未使用的变量)产生错误。是否可以完全省略const a

javascript ecmascript-6 eslint object-destructuring

20
推荐指数
3
解决办法
1113
查看次数

跳过类型检查未使用的参数

当我编译我的打字稿项目时,我正在使用该noImplicitAny选项,以便我不会忘记在我的变量和参数上指定类型.

但是,有时您会有不使用的参数.例如:

jQuery.ajaxTransport("+*", function (options: JQueryAjaxSettings) {
  return {
    abort: function (_, callback: JQueryCallback) { 
Run Code Online (Sandbox Code Playgroud)

我对中止函数的第一个参数不感兴趣,所以我通过命名它来忽略它.

这是在TypeScript中这样做的正确方法吗?我在指南中找不到它.我怀疑这不是正确的方法,因为我只能命名一个参数_.

Typescript引发以下错误:

错误TS7006:参数'_'隐式具有'any'类型.

我可以输入,_:any但对于我不使用的参数来说,这似乎有点矫枉过正.

unused-variables typescript

11
推荐指数
2
解决办法
8698
查看次数

箭头函数:如何指示解构中不需要的参数

有没有办法在箭头函数参数中指示不需要的参数(以及在解构过程中)?

_我在箭头函数中使用指示不需要的参数的人为案例:

import _ from 'lodash';

const m = [];
m.push({k: 1, v: 'a'});
m.push({k: 2, v: 'b'});
m.push({k: 3, v: 'c'});

const bExists = _.filter(m, ( {_,v}, _1, _2)=>{
    return v==='b';
}).length > 0;
Run Code Online (Sandbox Code Playgroud)

对上面代码的两个抱怨:

  1. _(用于 F# 等语言)与 lodash 导入相同。不是语法错误,但仍然令人困惑
  2. 随后_必须重命名为_1_2否则会得到:

    SyntaxError:es6/app.js:严格模式下参数名称冲突

我可以简单地省略_1_2参数,但这只是因为在这个特定的示例中,不需要的参数出现在参数列表的末尾。

上述第一个抱怨显然可以通过使用其他名称来解决,但第二个仍然有效(无论采用什么名称作为约定,都必须在后续不必要的争论中被破坏)。

那么,是否有语言支持来指示箭头函数中未使用的参数或(如果失败)对此建立的约定?

javascript ecmascript-6

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

jQuery强调为第一个arg函数

我有以下代码片段:

加价:

<tr name="tr3" id="tr3">
    <td>
        <input type="text" class="common_cls" name="dt[]" id="dt1"> 
    </td>
    <td>
        <input type="hidden" name="fn[]" id="fn1">
        <span id="sp1"><a href="#" id="ah1">choose file</a><span>
        <input type="file" name="fff[]" id="ff">
        <input type="text" style="display:none">
    </td>
</tr>';
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT

$(document).on('click', '#add_row', function() {
    var row = $("table#DocTable tr:eq(3)");
    row.clone(true)
        .show()
        .find("a, input, span").each(function() {
            $(this)
                .val('')
                .attr('id', function(_, id) {
                    var newcnt = id + count;
                    return id + count;
                });
        })
        .end()
        .appendTo("table");
    count++;
Run Code Online (Sandbox Code Playgroud)

我在一年前写过这篇文章,我对这个问题有所帮助.

作为.attr方法中调用的函数的第一个参数,下划线的目的是什么?

这个功能究竟如何运作?它是否只是替换当前id的所有数据a,spaninput标签的数字是递增的?

jquery

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