假设我创建一个对象如下:
var myObject = {
"ircEvent": "PRIVMSG",
"method": "newURI",
"regex": "^http://.*"
};
Run Code Online (Sandbox Code Playgroud)
什么是去除财产的最好方式regex与新落得myObject如下?
var myObject = {
"ircEvent": "PRIVMSG",
"method": "newURI"
};
Run Code Online (Sandbox Code Playgroud) 在不改变原始对象的情况下从特定键的对象中删除值的好方法和简短方法是什么?
我想做点什么:
let o = {firstname: 'Jane', lastname: 'Doe'};
let o2 = doSomething(o, 'lastname');
console.log(o.lastname); // 'Doe'
console.log(o2.lastname); // undefined
Run Code Online (Sandbox Code Playgroud)
我知道有很多不可变的库用于这样的任务,但我想在没有库的情况下离开.但要做到这一点,一个要求是有一个简单而简短的方法可以在整个代码中使用,而不会将方法作为效用函数抽象出来.
例如,为了添加值,我执行以下操作:
let o2 = {...o1, age: 31};
这很简单,易于记忆,不需要实用功能.
是否有类似的东西去除值?ES6非常受欢迎.
非常感谢你!
当键引用是动态的时,是否有 ES6(及更高版本)解决方案使用解构和扩展运算符创建一个新对象,其中键和值从原始对象中删除,因此:
const state = {
12344: {
url: 'http://some-url.com',
id: '12344'
},
12345: {
url: 'http://some-other-url.com',
id: '12345'
}
}
const idToDelete = 12344
const { [idToDelete], ...newState } = state // dynamic key
console.log('newState:', newState)
// desired newState would only have the key 12345 and its value
Run Code Online (Sandbox Code Playgroud)
除非这是我目前的 Babel 设置,否则我无法弄清楚 ES6 的清洁方式(如果存在的话)。
提前谢谢了