相关疑难解决方法(0)

为什么JavaScript中有2 == [2]?

我最近2 == [2]在JavaScript中发现了.事实证明,这个怪癖有几个有趣的后果:

var a = [0, 1, 2, 3];
a[[2]] === a[2]; // this is true
Run Code Online (Sandbox Code Playgroud)

同样,以下工作:

var a = { "abc" : 1 };
a[["abc"]] === a["abc"]; // this is also true
Run Code Online (Sandbox Code Playgroud)

更奇怪的是,这也有效:

[[[[[[[2]]]]]]] == 2; // this is true too! WTF?
Run Code Online (Sandbox Code Playgroud)

这些行为在所有浏览器中都是一致的

知道为什么这是一个语言功能吗?

以下是这个"功能"的更为疯狂的后果:

[0] == false // true
if ([0]) { /* executes */ } // [0] is both true and false!

var a = [0];
a == a // true
a == !a …
Run Code Online (Sandbox Code Playgroud)

javascript arrays properties

163
推荐指数
6
解决办法
1万
查看次数

Python元素方面的元组操作,如sum

反正有没有让Python中的元组操作像这样工作:

>>> a = (1,2,3)
>>> b = (3,2,1)
>>> a + b
(4,4,4)
Run Code Online (Sandbox Code Playgroud)

代替:

>>> a = (1,2,3)
>>> b = (3,2,1)
>>> a + b
(1,2,3,3,2,1)
Run Code Online (Sandbox Code Playgroud)

我知道它的工作原理是这样的,因为这些__add____mul__方法的定义是这样的.那么唯一的方法就是重新定义它们吗?

python tuples

94
推荐指数
9
解决办法
11万
查看次数

这个符号在JavaScript中意味着什么?

这是什么?

这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.

为什么是这样?

Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.

主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.

此外,这是PHP符号引用的公然副本.我们需要一个JS.


请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接

javascript

86
推荐指数
1
解决办法
14万
查看次数

我可以在Javascript中定义自定义运算符重载吗?

是否可以在JavaScript中的类型实例之间定义自定义运算符?

例如,假设我有自定义矢量类,是否可以使用

vect1 == vect2
Run Code Online (Sandbox Code Playgroud)

检查是否相等,而底层代码是这样的?

operator ==(a, b) {
    return a.x == b.x && a.y == b.y && a.z == b.z;
}
Run Code Online (Sandbox Code Playgroud)

(当然这是无稽之谈.)

javascript dsl equality vector operator-overloading

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

JavaScript中如何[1,2] + [4,5,6] [1] = 1,25

我从面试中得到了这个问题,

[1,2] + [4,5,6][1]
Run Code Online (Sandbox Code Playgroud)

JavaScript给出答案1,25.

怎么回事?请清楚解释一下.

javascript string concat concatenation

14
推荐指数
2
解决办法
1102
查看次数

元素添加两个元组

我只是想知道是否有一种特殊的pythonic方式添加两个元组元素?

到目前为止(a和b是元组),我有

map(sum, zip(a, b))
Run Code Online (Sandbox Code Playgroud)

我的预期输出是:

(a[0] + b[0], a[1] + b[1], ...)
Run Code Online (Sandbox Code Playgroud)

并且可能的重量是给予0.5重量和b 0.5重量,或者等等.(我试图加权平均值).

哪个工作正常,但说我想增加一个权重,我不太确定我会怎么做.

谢谢

python tuples

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

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

为什么JS中空数组加false会返回字符串?

为什么空数组加假返回字符串“假”?

> [] + false

> "false"
Run Code Online (Sandbox Code Playgroud)

空数组是假的,对吧?

那么假+假=假?不?

javascript

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

JavaScript:数组.为什么将带有填充数组的空数组连接成字符串?

我正在解决扁平化数组的问题.我遇到了一些非常奇怪的东西,似乎无法在网上找到答案.

为什么

[] + [1,2] = '1,2'
Run Code Online (Sandbox Code Playgroud)

我似乎无法理解为什么在填充的数组中添加一个空数组会产生一个包含填充数组内容的字符串.

背后会发生什么导致这种情况?

我的代码示例:

arr = [1, [2], [3, 4]];
arr.reduce(flatten, []); // [1, 2, 3, 4]

function flatten(a, b) {
    return a.concat(b);
}
Run Code Online (Sandbox Code Playgroud)

据我所知,reduce会将'[]'设置为'初始值',因此对于原始数组中的每个元素,它会将它与一个空数组连接,从而"展平"数组.

javascript arrays concatenation

4
推荐指数
2
解决办法
3906
查看次数

使用加号在数组 javascript 中串联

我试图使用 + 符号连接两个数组,但我得到的结果是:第一个数组的最后一个元素连接到第二个数组的第一个元素为什么会发生这种情况是我尝试过的任何具体原因

var a=[1,2,3]; 
var b=[5,7,8]; 
console.log(a+b);
Run Code Online (Sandbox Code Playgroud)

我得到的结果是 1,2,35,7,8

javascript arrays

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