Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t Immutable.js有一个;按值删除";选项_Javascript_List_Indexof_Immutable.js - Fatal编程技术网

Javascript 为什么';t Immutable.js有一个;按值删除";选项

Javascript 为什么';t Immutable.js有一个;按值删除";选项,javascript,list,indexof,immutable.js,Javascript,List,Indexof,Immutable.js,我目前正在将Redux应用程序的状态转换为使用Immutable.js数据结构。我看到Immutable.js列表没有按值删除的方法(如),因此必须使用老式的.indexOf 为什么我们需要: let list = List(['a', 'b']); let aList = list.delete(list.indexOf('b')); …如果我们可以,例如: let list = List(['a', 'b']); let aList = list.deleteByValue('b');

我目前正在将Redux应用程序的状态转换为使用Immutable.js数据结构。我看到Immutable.js
列表
没有按值删除的方法(如),因此必须使用老式的
.indexOf

为什么我们需要:

let list = List(['a', 'b']);
let aList = list.delete(list.indexOf('b'));
…如果我们可以,例如:

let list = List(['a', 'b']);
let aList = list.deleteByValue('b');
在Immutable的设计模式或精神气质中是否存在与此方法相矛盾的概念?还是像一个没有发生的功能请求一样简单

请注意,我并不是在抱怨特性,只是稍微了解一下框架的设计


谢谢

正如一些评论所提到的,它可以实现你想要的。它是一个基于值从集合中删除值的函数。添加一个
deleteValue
对扩展库并没有多大作用,实际上只是API膨胀

但是按照这种逻辑,.delete()不是已经被API膨胀了吗

但是Immutable.js尝试做的一件事是在它的API和JavaScript的内置数据结构之间创建对称性,例如。内置类型没有这样的
deleteValue
方法,因此Immutable.js不太愿意包含该特性

我相信这也是我们有
indexOf
的原因,它可以被
findIndex
完全取代


免责声明:我不是Immutable.js的作者,所以我不能肯定他们的决定。这就是我对所做选择的理解。

list.filter(x=>x!='b')
?还是只需要删除第一个事件?@Bergi,谢谢你的回复。我不是问如何通过价值实现移除,因为我知道有无数种方法。我想问的是,Immutable没有这个方法是否有更大的体系结构原因,因为它只是相应的
过滤器
调用的语法糖。我不知道immutable.js,你得问问它的作者,但通常你会尽量避免API膨胀。@Bergi说得对。但按照这种逻辑,
.delete()
不是已经被API膨胀了吗?有趣的是,它本身就是
list.splice(index,1)
的同义词。非常感谢。