小编gyr*_*yre的帖子

在JavaScript中查找数组的最小/最大元素

如何轻松获取JavaScript数组的最小或最大元素?

示例Psuedocode:

let array = [100, 0, 50]

array.min() //=> 0
array.max() //=> 100
Run Code Online (Sandbox Code Playgroud)

javascript

710
推荐指数
34
解决办法
72万
查看次数

获取与字典中的最小值对应的键

如果我有一个Python字典,我如何获得包含最小值的条目的键?

我在考虑与这个min()功能有关...

鉴于输入:

{320:1, 321:0, 322:3}
Run Code Online (Sandbox Code Playgroud)

它会回来321.

python dictionary idioms min minimum

264
推荐指数
7
解决办法
19万
查看次数

为什么在Python中反转和排序不同的类型?

reversed的类型是"类型":

>>> type(reversed)
<class 'type'>
Run Code Online (Sandbox Code Playgroud)

sorted的类型是"内置函数或方法":

>>> type(sorted)
<class 'builtin_function_or_method'>
Run Code Online (Sandbox Code Playgroud)

但是,它们在性质上看起来是一样的.排除功能上的明显差异(逆转与排序序列),实现这种差异的原因是什么?

python types python-internals

39
推荐指数
2
解决办法
2270
查看次数

重构在Java中创建可变数量的行星

我必须在这个程序中分配一个随机数量的对象,目前我知道这样做的唯一方法是这样的:

    if (star.returnZones() == 1) {
        this.createPlanet(planet1, star);
    }
    else if (star.returnZones() == 2) {
        this.createPlanet(planet1, star);
        this.createPlanet(planet2, star);
    }
    else if (star.returnZones() == 3) {
        this.createPlanet(planet1, star);
        this.createPlanet(planet2, star);
        this.createPlanet(planet3, star);
    }
    else if (star.returnZones() == 4) {
        this.createPlanet(planet1, star);
        this.createPlanet(planet2, star);
        this.createPlanet(planet3, star);
        this.createPlanet(planet4, star);
    }
    else if (star.returnZones() == 5) {
        this.createPlanet(planet1, star);
        this.createPlanet(planet2, star);
        this.createPlanet(planet3, star);
        this.createPlanet(planet4, star);
        this.createPlanet(planet5, star);
    }
Run Code Online (Sandbox Code Playgroud)

我确信这是一种更有效的方法,每个人都可以做到这一点.我将使用术语asAbovePlus来表示上述所有内容,还有一件事.

if (star.returnZones() == 1) {
    this.createPlanet(planet1, star);
}
else if (star.returnZones() == 2) { …
Run Code Online (Sandbox Code Playgroud)

java

29
推荐指数
8
解决办法
3618
查看次数

如何在C++中比较两个类型名称是否相等?

假设我有一个函数的模板,比方说

template<typename T>
func(T a, T b, ...) {
  ...
  for (const auto &single : group) {
    ...
    auto c = GivenFunc1(a, b, single, ...);
    ...      }
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,对于T是一种特殊类型,比如说"SpecialType",我希望c通过"GivenFunc2"而不是"GivenFunc1"来计算.但是,我不想为"SpecialType"编写专门化,因为会有大量的代码重复.所以我想模板功能就像

template<typename T>
func(T a, T b, ...) {
  ...
  for (const auto &single : group) {
    ...
    auto c = (T == SpecialType) ? GivenFunc2(a, b, single, ...)
                                : GivenFunc1(a, b, single, ...);
    ...      }
  ...
}
Run Code Online (Sandbox Code Playgroud)

当然,由于"T == SpecialType"无效,因此该代码无法编译.那么如何以优雅的方式编写它呢?

c++ templates

25
推荐指数
4
解决办法
2307
查看次数

当Comparator有两个抽象方法时,它如何成为一个功能接口?

在Java 8中,@FunctionalInterface引入了注释以表示任何具有一个抽象方法作为功能接口的接口.引入它的原因之一是指示用户(程序员),lambda表达式可以在功能接口的上下文中使用.

Comparator接口都被注解@FunctionalInterface.但是,两种方法都是抽象的.

int compare(T o1, T o2);
Run Code Online (Sandbox Code Playgroud)

boolean equals(Object obj);
Run Code Online (Sandbox Code Playgroud)

在文档中FunctionalInterface,它被明确提及为

从概念上讲,功能界面只有一种抽象方法.

这个equals方法不是被认为是抽象的吗?

java comparator java-8 functional-interface

22
推荐指数
2
解决办法
3650
查看次数

在不同窗口的上下文中执行一个函数?

假设顶部窗口中有一个函数.例如:

function z() { alert(window.name); }
Run Code Online (Sandbox Code Playgroud)

我们还要说这个文档中有一个iframe(同源).

顶部窗口中的函数是否可以在另一个窗口的上下文中执行此函数,以便显示iframe的名称而不是顶部窗口?

换句话说,全局对象如何绑定到一个函数并且可以更改?

天真的尝试不起作用:https://jsfiddle.net/wos2o3gx/(显示两个调用的顶部).

javascript dom

15
推荐指数
2
解决办法
1115
查看次数

有效地计算JavaScript中整数的位数

假设我有一个整数I,并希望以二进制形式得到1的计数.

我目前正在使用以下代码.

Number(i.toString(2).split("").sort().join("")).toString().length;
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?我正在考虑使用按位运算符.有什么想法吗?

注意: i在32位限制范围内.

javascript binary bit-manipulation

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

CSS伪选择器在querySelector中选择当前元素?

什么是CSS伪选择器来选择元素的自我?

例如,这不起作用:

Array.prototype.map.call(document.querySelectorAll('.program_record_outer'), programBox => {
    return programBox.querySelector('> div')
});
Run Code Online (Sandbox Code Playgroud)

DOMException:无法在'Element'上执行'querySelector':'> div'不是有效的选择器.

但我相信这样的事情会:

Array.prototype.map.call(document.querySelectorAll('.program_record_outer'), programBox => {
    return programBox.querySelector(':self > div')
});
Run Code Online (Sandbox Code Playgroud)

但是,:self不是一个东西,而是:root指文档的根目录,那么我该如何引用当前的上下文呢?

javascript css

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

如何在JavaScript中的`Promise.all`中使用`Array#map`

我正在尝试Promise.all使用一系列项目创建一个.所以,如果我像这样创建它,它工作正常

Promise.all([
  Query.getStuff(items[0]),
  Query.getStuff(items[1])
]).then(result => console.log(result))
Run Code Online (Sandbox Code Playgroud)

如果我尝试创建Promise.all这样的,它不起作用

Promise.all([
    items.map(item => Query.getStuff(item))
]).then(result => console.log(result))
Run Code Online (Sandbox Code Playgroud)

then块在之前运行Query.getStuff(item).我错过了什么?

javascript promise

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