繁体   English   中英

如何仅从 JavaScript 中的对象数组返回特定属性

[英]how to only return specific property form an array of objects in JavaScript

我只想返回socket id,但是forEach返回一个未定义的值,find返回整个object。

我只希望 output 为 12345。

const users= [
  { host: true, socketId: "12345" },
  { host: false, socketId: "987654" },
  { host: false, socketId: "5678345" },
];

let socketId = users.forEach((user) => {
  if (user.host === true) {
    return user.socketId;
  }
});//this return undefined 

 let socketId = users.find((user) => {
  if (user.host === true) {
    return user.socketId;
  }
});//this return the whole object {host:true,socketId:"12345"}

    const getHostSocketId = () => {
  for (var i = 0; i < users.length; i++) {
    if (users[i].host === true) {
      return users[i].socketId;
    }
  }
};

   let socketId = getHostSocketId(); //This works, but I'd rather use a method like the ones mentioned above.

   console.log(socketId); //i want this to be 12345
let socketId = users.find(u => u.host)?.socketId
let answer = (inputArray) => {
    const outputArray = []
    
    inputArray.forEach((element) => {
      if (element.host === true) {
        outputArray.push(element.socketId)
      }
    })

    return JSON.stringify(outputArray, null, '  ')
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM