迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中按属性值查找数组中的对象

作者:迹忆客 最近更新:2023/06/05 浏览次数:

数组指的是值的有序列表,每个值称为由索引指定的元素。 JavaScript 数组可以保存混合类型的不同值,例如字符串、空值或布尔值,并且不需要数组的大小来指定它在哪里自动增长和动态。

在考虑数组对象时,它将多个值存储在单个变量和具有相同数据类型的固定大小的顺序元素集合中。 使用数组构造函数指定单个数字参数时,用户应设置数组的初始长度。

数组允许的最大长度为 4,294,967,295。 尽管数组包含数据集合,但将数组视为相似类型的变量集合通常更有帮助。

此外,JavaScript 数组由不同的方法和属性组成,这些方法和属性将帮助程序在无需大量编码的情况下高效执行。

当通过属性值在数组中查找对象时,可以在 JavaScript 中使用不同的实现。


使用 find() 方法按属性值在数组中查找对象

我们可以使用 find() 方法通过对象的属性值在 JavaScript 的对象数组中查找对象。 在这里,find() 方法返回满足给定测试函数的第一个数组元素。

任何不满足测试功能的值都将返回 undefined。 下面的代码说明了如何在 JavaScript 对象数组中通过 id 查找对象。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JavaScript Find Object In Array By Property Value</title>
</head>

<body>
    <script>
    var sampleArray = [
        {"id": 1, "animal": "Dog"},
        {"id": 2, "animal": "Cat"},
        {"id": 3, "animal": "Bird"},
        {"id": 4, "animal": "Fish"}
    ];

    //getting the object by its id
    var output = sampleArray.find(object => object.id === 3);

    //outputs the animal to be found
    document.write(output.animal);

    </script>
</body>
</html>

const 关键字有时用作声明数组而不是 var 的常见做法。

在这里,用户需要找到具有给定 id 的动物,作为输出,该动物是与用户提供的 id (3) 匹配的 Bird。

输出:

JavaScript 按属性值在数组中查找对象 - 输出 1

如果需要,可以在下面的代码中使用 findIndex() 方法来查找匹配对象在数组中的索引。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Javascript Find Object In Array By Property Value</title>
</head>

<body>
    <script>
    var sampleArray = [
        {"id": 1, "animal": "Dog"},
        {"id": 2, "animal": "Cat"},
        {"id": 3, "animal": "Bird"},
        {"id": 4, "animal": "Fish"}
    ];

   //getting the index of the object that matches the id
    var objectIndex = sampleArray.findIndex(object => object.id === 3);

    //getting the output as the index and the animal to be found
    document.write(objectIndex + "<br>");
    document.write(sampleArray[objectIndex].animal);

    </script>
</body>
</html>

在这里,用户需要找到具有给定 ID 和索引的动物。 作为输出,找到的动物是 Bird,其索引为 2,与用户提供的 id (3) 匹配。

输出:

JavaScript 按属性值在数组中查找对象 - 输出 2


使用 filter() 方法按属性值查找数组中的对象

我们还可以利用 filter() 方法创建一个新数组,其中填充了通过测试函数的元素。 如果元素为空并且不对原始数组进行任何更改,则 filter() 方法不会运行该函数。

下面的代码说明了如何在 JavaScript 对象数组中通过 id 查找对象。

var animals = [
  {animalName: "Dog", ability: "Bark"},
  {animalName: "Cat", ability: "Meow"},
  {animalName: "Bird", ability: "Fly"},
  {animalName: "Fish", ability: "Swim"}
];

var animalAbility =  animals.filter(function(animal) {
  return animal.ability == "Bark";
});

console.log(animalAbility);

在这里,用户可以通过输入需要从数组中获取的相关能力来获取所需的输出。

输出:

JavaScript 按属性值在数组中查找对象 - 输出 3


使用 JavaScript for 循环按属性值查找数组中的对象

首先,声明一个对象数组,每个对象都有一个 id 和 name 属性。 当涉及到程序的执行时,会创建一个带有数组、对象键和值的函数。

for 循环用于遍历数组中的对象。 使用相等运算符 (===) 使用分配的键和值检查每个对象。

如果匹配,程序返回一个对象。 否则,它返回 null 作为输出。

以下代码指示如何通过 JavaScript 对象数组中的键查找对象。 此代码不使用任何数组方法来查找数组对象。

let animals = [
    {"id": 1, "animal": "Dog"},
    {"id": 2, "animal": "Cat"},
    {"id": 3, "animal": "Bird"},
    {"id": 4, "animal": "Fish"}
]

//declaration of the function and iteration through the objects
function getObjectByKey(array, key, value) {
    for (var c = 0; c < array.length; c++) {
        if (array[c][key] === value) {
            return array[c];
        }
    }
    return null;
}
console.log(getObjectByKey(animals,'animal','Fish'))

用户可以通过提供相关密钥来获得所需的输出。

输出:

JavaScript 按属性值在数组中查找对象 - 输出 4


使用 JavaScript for...in 循环按属性值查找数组中的对象

如有必要,for...in 循环可用于按属性值查找数组对象,因为它遍历对象的所有属性值。

下面的代码显示了如何使用 for...in 循环来查找对象。

var animals = [
    {"id": 1, "animal": "Dog"},
    {"id": 2, "animal": "Cat"},
    {"id": 3, "animal": "Bird"},
    {"id": 4, "animal": "Fish"}

];

for (const c in animals) {
  if (animals[c].id == 2) {
    console.log(animals[c]);
  }
}

在这里,用户可以根据需要提供相关的 id 来获取输出。

输出:

JavaScript 按属性值在数组中查找对象 - 输出 5

通过进一步的实现,存在其他方法可以通过属性值从对象数组中获取 JavaScript 对象。

上一篇:JavaScript 通过对键的引用获取对象的值

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

JavaScript 通过对键的引用获取对象的值

发布时间:2023/06/06 浏览次数:195 分类:JavaScript

在 JavaScript 中,对象以键值对的形式编写。 我们可以通过键来获取对象的值。但也可以通过变量引用键并使用变量访问对象中的值。 本文将介绍其实现方式。

使用 JavaScript 将鼠标指针移动到特定位置

发布时间:2023/06/06 浏览次数:106 分类:JavaScript

在这篇文章中,我们将创建一个假的或自定义的鼠标指针,它可能看起来类似于默认系统的鼠标指针,然后我们将使用 JavaScript 将其位置移动到不同的位置。 这种将鼠标指针移动到特定位置的

JavaScript 异步 forEach

发布时间:2023/06/06 浏览次数:200 分类:JavaScript

在本篇文章中,我们将看看我们是否可以在 JavaScript 的 forEach 循环中使用异步。 有哪些选择?JavaScript 中的异步 forEach 异步编程不适用于 Array.prototype.forEach。

JavaScript 中 URL 解码

发布时间:2023/06/06 浏览次数:118 分类:JavaScript

本文着眼于 URL 解码以及如何使用 JavaScript 对编码的 URL 进行解码。需要URL编解码。JavaScript 中的 URL 解码。在 JavaScript 中,可以通过三种方法对编码的 URL 进行解码。

如何在 JavaScript 中生成 PDF

发布时间:2023/06/06 浏览次数:145 分类:JavaScript

在本文中,我们将学习用 JavaScript 创建 PDF 的有效方法。 在示例的帮助下,我们将了解 JavaScript 中有哪些可用的库来创建 PDF。

在 JavaScript 中使用种子生成随机数

发布时间:2023/06/06 浏览次数:182 分类:JavaScript

本文介绍如何使用种子在 JavaScript 中生成随机数。 我们实现这一点要归功于 PRNG,它接受一个种子并返回一个基于该种子的随机数。

JavaScript += 的效果

发布时间:2023/06/06 浏览次数:152 分类:JavaScript

本篇文章将介绍 JavaScript += 在以下情况下的效果。JavaScript 加上数字之间的相等 ;JavaScript 加上字符串之间相等 ;JavaScript 在数字和字符串之间加上相等

JavaScript 电话号码格式

发布时间:2023/06/06 浏览次数:181 分类:JavaScript

在本文中,我们将了解在 JavaScript 源代码中格式化电话号码的最佳方式,以及在我们的 JavaScript 代码中格式化数字的好处。JavaScript 中的电话号码格式 在 JavaScript 中,我们有多个选项可以有效地

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便