为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查数组是否具有具有特定属性的对象,然后找到该属性?

如何检查数组是否具有具有特定属性的对象,然后找到该属性?

DIEA 2022-09-02 21:31:00
我有一个数组,看起来像这样:var arr = [  {name: "Joe", id: "p01"}];我想首先检查输入是否与具有相同属性的任何内容匹配。例如,如果用户输入“Steven”,我希望它检查名称为“Steven”的任何对象。name其次,我想得到他们输入的任何东西,如果存在的话。id抱歉,如果这是一个很大的要求。
查看完整描述

4 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

const arr = [

  {name: "Joe", id: "p01"}

];


//need to find array item where object.name is Joe - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

const obj = arr.find(item => {

    //item = {name: "Joe", id: "p01"}

    return item.name === 'Joe'

});


//obj = {name: "Joe", id: "p01"}

//check if item exists and return id value;

const id = obj && obj.id;


//to filter array and get only items where name is Joe - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

const items = arr.filter(item => item.name === 'Joe');

//items = [{name: "Joe", id: "p01"}]


//to get the list of ids with condition

const ids = arr.reduce((results, obj) => {

 if (obj.name === "Joe") results.push(obj.id);

}, [])

//ids = ["p01"]


//one line solution

const { id } = arr.find(item => item.name === 'Joe') || {};


查看完整回答
反对 回复 2022-09-02
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

它也可以做到。filter


var arr = [

  {name: "Joe", id: "p01"},

  {name: "Steve", id: "p02"},

  {name: "Smith", id: "p01"},

];




console.log(arr.filter(i=>i.name.includes('Ste')))

   var ids = arr.filter(i=>i.name.includes('Ste')).map(k=>k.id);

console.log(ids);


查看完整回答
反对 回复 2022-09-02
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

你可以这样做,希望这会帮助你


let arr = [

  {name: "Joe", id: "p01"}

];


let searchQuery = 'Joe'

let finalResult = arr.find(({name}) => name.includes(searchQuery));

finalResult = (finalResult && finalResult.id) ? finalResult.id :"No Match Found"

console.log(finalResult);


查看完整回答
反对 回复 2022-09-02
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

const foundItem = arr.find(item => item.name === searchQuery) // searchQuery = Steven


if (foundItem === -1) {

  console.log("Item not found")

} else {

  console.log("Item found", foundItem)

  console.log("Item id: ", fountItem.id)

}


查看完整回答
反对 回复 2022-09-02
  • 4 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信