javascript - 如何访问对象中子元素的值?

标签 javascript arrays

我想访问每个用户的 friend 数组(数组的值是用户的ID)并返回给定用户( friend )的 friend 数组的值

const users = [
{
   "id": 1,
   "firstName": "Paul",
   "surname": "Crowe",
   "friends": [2]
 },
 {
   "id": 2,
   "firstName": "Rob",
   "surname": "Fitz",
   "friends": [1,3]
 },
 {
   "id": 3,
   "firstName": "Ben",
   "surname": "O'Carolan",
   "friends": [2]
 },

这是我尝试过的:

const fof = users.filter(user => {
      if (friend == user.id) {
        return true;
      }
    });

最佳答案

您可以使用filter方法来查找 friend ,然后map他的 friend :

const idPerson = 2;
const idFriends = users.filter(f => f.id == idPerson).flatMap(({friends})=> (friends));
const uniqueUsers = new Map(users.map(u => ([u.id, u])));
const friends = idFriends.map(id => ({...uniqueUsers.get(id)}));

一个例子:

const users = [
    {
        "id": 1,
        "firstName": "Paul",
        "surname": "Crowe",
        "friends": [2]
    },
    {
        "id": 2,
        "firstName": "Rob",
        "surname": "Fitz",
        "friends": [1, 3]
    },
    {
        "id": 3,
        "firstName": "Ben",
        "surname": "O'Carolan",
        "friends": [2]
    }
];

const idPerson = 2;
const idFriends = users.filter(f => f.id == idPerson).flatMap(({friends})=> (friends));
const uniqueUsers = new Map(users.map(u => ([u.id, u])));
const friends = idFriends.map(id => ({...uniqueUsers.get(id)}));
console.log(friends);

关于javascript - 如何访问对象中子元素的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306312/

相关文章:

c - 二维数组,其中每行都有不同类型的结构指针

arrays - swift:删除用于加载数组的变量空格

javascript - 如何检查网站是否可以在 iframe 中加载

javascript - javascript 中的事件监听器不触发,除非在加载页面时触发

javascript - Highcharts 不显示从 JSON 推送的系列

javascript - 数组的多维数

php - 如何在此代码中生成我期望的 json

javascript - 什么是 'Currying' ?

javascript - Uncaught ReferenceError : function is not defined with onclick with angular form and js

php - 如何在 PHP 中克隆对象数组?