JavaScript:如何从对象中删除与给定键对应的键值对?

PHPz
PHPz 转载
2023-08-22 15:53:12 347浏览

JavaScript:如何从对象中删除与给定键对应的键值对?

在JavaScript中,可以创建对象来存储数据,以键值对的形式。可以使用点表示法(obj.key)或括号表示法(obj["key"])访问对象中的数据。请参考下面的示例−

let obj = { key1: "value1", key2: "value2", key3: "value" };
我们可以从对象中删除与给定键对应的键值对,但是在删除之前,我们需要确保对象存在这些键 在本教程中,我们将介绍3种方法。

使用delete运算符

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()方法

filter()方法用于从现有数组创建一个新数组。请参见下面的示例:

示例

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <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>
</body>
</html>

从上面的示例中可以看出,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循环

for…in循环用于遍历对象的属性。

示例

请参考以下示例−

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <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>
</body>
</html>

从上面的示例中可以看出,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中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除