小编jon*_*nny的帖子

是否可以在每次创建数组时执行某个功能?

创建数组时,我需要一个自动在该数组上调用的函数.我认为这可能会以某种方式使用Array的原型/构造函数,但我不知道如何解决这个问题.

所以我有一个数组,我初始化:

var arr = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)

现在让我们说我有这样的功能:

Array.prototype.objectArray = function() {
    var result = this.every(function(elem) {
        return typeof elem == "object";
    });
    this.isObjectArray = result;
}
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,调用此数组上的函数会将其isObjectArray参数赋值给false.

但是,我想要的是每次创建一个数组时,此函数都会在数组上运行,因此默认情况下每个数组都有其isObjectArray属性集.这可能吗?

提前致谢!

javascript arrays

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

关于属性与类之间是否有任何性能(或其他)差异?

我很好奇添加类与向元素添加属性以动态设置它们.

将CSS属性应用于满足特定参数的某些元素的约定通常通过将类应用于该元素来完成.例如,如果我点击一个按钮,可以说该按钮处于活动状态 - 我可以选择在点击时将自定义类应用到它,如下所示:

$(".button").click(function(){
    $(this).addClass("active");
});
Run Code Online (Sandbox Code Playgroud)

CSS就像下面这样简单:

.button.active {
    transform: scale(1.5);
}
Run Code Online (Sandbox Code Playgroud)

我的方法不同,我很好奇两者之间是否有任何明显的差异.我将属性应用于元素而不是类,如下所示:

 $(".button").click(function(){
     $(this).attr("active", true);
 });
Run Code Online (Sandbox Code Playgroud)

像这样的CSS:

.button[active] {
    transform: scale(1.5);
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何理由我不应该这样做,即如果这是一个糟糕的约定或其他什么,如果这种方法有任何性能差异.大多数情况下只是好奇,但也想知道是否使用类似的查询比例如$(".button[active]")性能更差$(".button .active").

html javascript css jquery

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

用于匹配重复子串的单个js正则表达式?

说我有一个字符串,如:

where is mummy where is daddy
Run Code Online (Sandbox Code Playgroud)

我想用空字符串替换任何一组重复的子字符串 - 所以在这种情况下where,is将删除和元素,结果字符串将是:

mummy daddy
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何单一的正则表达式可以实现这一点.我试过的正则表达式(不起作用)如下所示:

/(\w+)(?=.*)\1/gi
Run Code Online (Sandbox Code Playgroud)

在第一个捕获组是任何字符集的情况下,第二个是对任何字符集的正面观察(为了防止这些字符包含在结果中),然后\1是对第一个匹配的子字符串的反向引用.

任何帮助都会很棒.提前致谢!

javascript regex string

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

如何用种子确定性地改组数组?

我发现很难确定性地改组数组,在Rust中使用随机种子.我想要实现的目标(伪代码):

let v = vec![0, 1, 2, 3];
pseudo_shuffle(v, randomSeed1) // always produces e.g. [3,1,2,0]
pseudo_shuffle(v, randomSeed2) // always produces e.g. [0,2,3,1]
Run Code Online (Sandbox Code Playgroud)

在另一个Stack Overflow答案中,我学会了如何使用rand::Rng::shuffle()非确定性地对向量进行混洗,但它似乎没有提供用于将随机种子应用于生成函数的API,并且我很难想出一个解决方案我自己没有采用一些荒谬的n!复杂算法.

random shuffle rust random-seed

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

有没有办法模拟调用父类的静态方法进行简单的全局错误处理的Java行为?

我正在尝试在Rust中实现一个简单的解释器,用于编写一个编程语言rlox,跟随Bob Nystrom的书Crafting Interpreters.

我希望错误能够在任何子模块中发生,并且在main模块中"报告"它们(这在书中通过Java完成,只需在包含类的类上调用静态方法打印违规令牌和线).但是,如果发生错误,那就不像我可以尽早返回Result::Err(我认为,这是处理Rust中错误的惯用方法),因为解释器应该继续运行 - 不断寻找错误.

有没有(惯用)方式来模拟从Rust中的子类中使用模块调用父类的静态方法的Java行为?我应该完全抛弃这样的东西吗?

我想到了一个战略,我注入一些参考ErrorReporter结构作为一个依赖入ScannerToken结构,但似乎笨拙的我(我不觉得自己是个错误报告应该是结构签名的一部分,是我错了吗?) :

struct Token {
   error_reporter: Rc<ErrorReporter>, // Should I avoid this?
   token_type: token::Type,
   lexeme: String,
   line: u32   
}
Run Code Online (Sandbox Code Playgroud)

这是我的项目的布局,如果您需要可视化我正在谈论的模块关系.很高兴在必要时提供一些源代码.

rlox [package]
????src
    ????main.rs (uses scanner + token mods, should contain logic for handling errors)
    ????lib.rs (just exports scanner and token mods)
    ????scanner.rs (uses token mod, declares scanner struct and impl)
    ????token.rs (declares token struct and impl)
Run Code Online (Sandbox Code Playgroud)

interpreter rust

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

标签 统计

javascript ×3

rust ×2

arrays ×1

css ×1

html ×1

interpreter ×1

jquery ×1

random ×1

random-seed ×1

regex ×1

shuffle ×1

string ×1