小编jac*_*bsa的帖子

在 JQuery 对象上使用 .splice()

我们通过以下方式删除某个html元素的子元素JQuery

$(PARENT_SELECTOR).children(CHILD_SELECTOR).remove()
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能使其表现得像.splice()方法(例如,在树上删除DOM给定的索引和偏移量)。例如:

  1. 删除最后三个孩子。在这里我很可能会使用:

    for(var x = 0; x < 3; x++) {
       $(PARENT_SELECTOR).children().last().remove()
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除第四至第六个孩子。这里我将使用:

    $(PARENT_SELECTOR).children().eq(3).remove()
    $(PARENT_SELECTOR).children().eq(4).remove()
    $(PARENT_SELECTOR).children().eq(5).remove()
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从第 5 个子元素开始删除 5 个元素(这是我想要的.splice()类似函数的真实场景JQuery):

    var starting = 5,
        index = 5
    
    // I haven't tested this yet.
    for(var x = index + starting; x > index; x--) {
        $(PARENT_SELECTOR).children().eq(x - 1).remove()
    }
    
    Run Code Online (Sandbox Code Playgroud)

这样的例子不胜枚举……我可以为每个场景制作自己的具体案例脚本[,这很简单]。我只是想知道JQuery它是否已经有这样的自己的功能——它会让我的脚本更短,并且不会让我重复编写类似的代码。

javascript jquery

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

有赠品和无赠品的vmsplice(2)的语义是什么?

我试图了解vmsplice(2)syscall 的功能(此处的手册页)。关于SPLICE_F_GIFT标志的作用,我有两个问题:

  1. 手册页指出,一旦将页面赠予内核,就不能再修改内存。这是否意味着该内存将永远固定,还是可能指的是赠礼过程无法映射的虚拟内存,而不是物理内存?换句话说,这种用法的典型用法是什么样的?

  2. 如果我不设置SPLICE_F_GIFTvmsplice(2)与矢量化写syscall 有什么不同writev(2)吗?

linux linux-kernel splice zero-copy

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

C++内存模型:seq_cst加载与seq_cst存储同步吗?

在C++内存模型中,所有顺序一致操作的所有加载和存储都有一个总顺序.我想知道这是如何与具有其他内存排序的操作交互,这些内存排序在顺序一致的加载之前/之后排序.

例如,考虑两个线程:

std::atomic<int> a(0);
std::atomic<int> b(0);
std::atomic<int> c(0);

//////////////
// Thread T1
//////////////

// Signal that we've started running.
a.store(1, std::memory_order_relaxed);

// If T2's store to b occurs before our load below in the total
// order on sequentially consistent operations, set flag c.
if (b.load(std::memory_order_seq_cst) == 1) {
  c.store(1, std::memory_order_relaxed)
}


//////////////
// Thread T2
//////////////

// Blindly write to b.
b.store(1, std::memory_order_seq_cst)

// Has T1 set c? If so, then we know our store to b occurred before …
Run Code Online (Sandbox Code Playgroud)

c++ atomic memory-model language-lawyer stdatomic

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

如果一个属性具有特定值,则删除整个对象

我有一个看起来像这样但更大一点的对象数组:

var total =   [{ cost="6.00",  descrip="tuna"},{ cost="5.50",  descrip="cod"}];
Run Code Online (Sandbox Code Playgroud)

我需要一种从数组中删除特定完整对象的方法。是否可以根据属性的值识别对象的索引?如果可以,则拼接方法看起来可以工作。

total.splice(x,1);
Run Code Online (Sandbox Code Playgroud)

否则,也许我可以使用以下内容?可以给数组中的对象命名并以某种方式使用它:

delete total[];
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

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

如何浏览我不拥有的 Google Cloud Storage 存储桶的内容?

Storage > Cloud Storage > Browser通过点击Google Developers Console即可访问存储浏览器,这是浏览我的存储桶内容的一种非常方便的方式。但是它只显示我的项目拥有的存储桶。

目前,我想浏览我已获得权限的存储桶的内容,但该存储桶属于我不是其成员的项目。有什么方法可以让存储浏览器向我显示该存储桶吗?

google-cloud-storage google-cloud-platform

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

linux:写入文件的数据是否保证对其他进程可见?

如果我使用write(2)Linux和后来写入一个文件从一个进程open(2)read(2)另一个进程中,我保证,看我不给呼叫写的数据fsync(2)close(2)

(请忽略文件名被取消链接或覆盖的可能性,或系统重新启动或另一个进程写入数据的可能性.并假设我在写入和读取之间正确建立了边缘.)

我知道数据不能保证保存在磁盘上,但是保证第二个进程可见吗?

linux file linux-kernel

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

鱼壳:如何在现有提示之前添加换行符?

我对默认的鱼提示很满意,除了我想在它之前打印一个换行符,以便与上一个命令在视觉上分开。

有什么方法可以让我定义一个 newfish_prompt来打印一个换行符,然后以某种方式遵循以前称为 的函数fish_prompt

shell fish

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

C++标准:ODR和constexpr std :: string_view

如果我有一个foo.h包含的标题

#ifndef FOO_H_
#define FOO_H_

namespace foo {
constexpr std::string_view kSomeString = "blah";
}

#endif  // FOO_H_
Run Code Online (Sandbox Code Playgroud)

那么在单个程序中包含foo.h多个.cc文件是否安全,无论它们对符号做什么kSomeString,或者是否存在可能导致ODR违规的一些用途?

此外,它是否保证kSomeString.data()将跨.cc文件返回相同的指针?

如果可能的话,我想特别引用C++标准中的措辞.谢谢!

c++ one-definition-rule linkage language-lawyer c++17

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

如何使用推导指南为 C++ 类模板提供两个兼容的名称?

如果我有一个广泛使用的类模板,Foo我想重命名它,而Bar不必原子地更新它的所有用户,那么直到 C++17 我都可以简单地使用类型别名:

template <typename T>
class Bar {
 public:
  // Create a Bar from a T value.
  explicit Bar(T value);
};

// An older name for this class, for compatibility with callers that haven't
// yet been updated.
template <typename T>
using Foo = Bar<T>;
Run Code Online (Sandbox Code Playgroud)

当在大型分布式代码库中工作时,这非常有用。然而,从 C++17 开始,类模板参数推导指南似乎打破了这一点。例如,如果存在这一行:

template <typename T>
explicit Foo(T) -> Foo<T>;
Run Code Online (Sandbox Code Playgroud)

那么重命名类时显而易见的事情就是将Foo推导指南中的 s 更改为Bars:

template <typename T>
explicit Bar(T) -> Bar<T>;
Run Code Online (Sandbox Code Playgroud)

但现在随机调用者中的表达式Foo(17)(以前是合法的)出现了错误:

test.cc:42:21: error: alias …
Run Code Online (Sandbox Code Playgroud)

c++ c++17 ctad

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

这个概念在 Haskell 中叫什么?

我正在用 C++ 编写一些相对函数式风格的代码,并试图避免为其起一个坏名字。为此,我尽可能坚持 Haskell 中同构概念的名称。(需要明确的是,我不太了解 Haskell,但阅读它非常有启发性。)

如果我正确地完成了 Haskell 打字,我相信我正在寻找名称的概念将具有以下签名:

someName :: (Monad m1, Monad m2) => (a -> m1 b) -> (m2 a -> m1 m2 b)
Run Code Online (Sandbox Code Playgroud)

这个想法是,您有一个适合用于绑定类型 monad 的函数m1,并将其转换为适合绑定m1包含m2值的值的函数。

我不能很好地编写 Haskell 来给出一个例子,但这里是伪 C++ 说明我想要的,使用std::optionalabsl::StatusOr

// A silly example of a bind function for absl::StatusOr<int>.
absl::StatusOr<int> AddTwoUnless17(int x) {
  if (x == 17) {
    return absl::InternalError("can't add two to 17!")
  }
  
  return x + 2;
}

// Convert AddTwoUnless17 into …
Run Code Online (Sandbox Code Playgroud)

monads haskell functional-programming monad-transformers

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