在JavaScript中,可以创建对象来存储数据,以键值对的形式。可以使用点表示法(obj.key)或括号表示法(obj["key"])访问对象中的数据。请参考下面的示例−
let obj = { key1: "value1", key2: "value2", key3: "value" };我们可以从对象中删除与给定键对应的键值对,但是在删除之前,我们需要确保对象存在这些键 在本教程中,我们将介绍3种方法。
delete运算符用于删除对象的属性。delete运算符不会删除变量本身,而只会删除变量的值。
请参考下面的示例 -
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> let obj = { key1: "value1", key2: "value2", key3: "value3" }; delete obj.key2; document.getElementById("result").innerHTML = JSON.stringify(obj); console.log(obj) </script> </body> </html>
从上面的例子中可以看出,delete操作符只删除值的
key and not the key itself.Below is the line by line explanation of the above code −
key和不是key本身。以下是对上述代码逐行解释 −
let obj = { key1: "value1", key2: "value2", key3: "value3" };
我们已经创建了一个包含3个键值对的对象。
delete obj.key2;
delete运算符用于删除键值对,其中键为“key2”。
console.log(obj);
上述代码在控制台的输出将是:{ key1: "value1", key3: "value3" } 你可以看到,键为“key2”的键值对已从对象中删除。
filter()方法用于从现有数组创建一个新数组。请参见下面的示例:
Examples <script> let obj = { key1: "value1", key2: "value2", key3: "value3" }; let newObj = Object.keys(obj) .filter(key => key != "key2") .reduce((acc, key) => { acc[key] = obj[key]; return acc; }, {}); document.getElementById("result").innerHTML = JSON.stringify(newObj); console.log(newObj) </script>
从上面的示例中可以看出,filter()方法只删除了值的 the key and not the key itself.
Below is the line by line explanation of the above code:
关键是关键本身。以下是对上述代码逐行解释:
let obj = { key1: "value1", key2: "value2", key3: "value3" };
我们已经创建了一个包含3个键值对的对象。
let newObj = Object.keys(obj) .filter(key => key != "key2") .reduce((acc, key) => { acc[key] = obj[key]; return acc; }, {});
Object.keys()方法用于创建一个包含对象键的数组 filter()方法用于从现有数组中创建一个新数组。关键是 与“key2”相比较。如果不相等,则将键值对添加到新数组中 reduce()方法用于将数组缩减为一个对象。
console.log(newObj);上述代码的输出将是:
{ key1: "value1", key3: "value3" }
。正如您所看到的, 被删除的键为“key2”的键值对已从对象中删除。for…in循环用于遍历对象的属性。
请参考以下示例−
Examples <script> let obj = { key1: "value1", key2: "value2", key3: "value3" }; for (let key in obj) { if (key == "key2") { delete obj[key]; } } document.getElementById("result").innerHTML = JSON.stringify(obj); console.log(obj) </script>
从上面的示例中可以看出,for…in循环只删除键的值 and not the key itself.
Below line by-line explanation of the above code:
并不是密钥本身。以下是对以上代码逐行解释:
let obj = {key1: "value1", key2: "value2", key3: "value3"};
我们已经创建了一个包含3个键值对的对象。
for (let key in obj) { if (key == "key2") { delete obj[key]; } }
使用for…in循环来遍历对象的属性。key变量用于存储对象的键。如果键是“key2”,则从对象中删除键值对。
console.log(obj);上述代码的输出将是:
{ key1: "value1", key3: "value3" }
。正如您所看到的, 被删除的键名为“key2”的键值对已从对象中删除。在本教程中,我们介绍了3种方法来删除与键值对相对应的键值对 给定一个对象的键。删除操作符,for...in循环和filter()方法。
以上是JavaScript:如何从对象中删除与给定键对应的键值对?的详细内容。更多信息请关注PHP中文网其他相关文章!