亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取數組中對象內部元素的鍵

獲取數組中對象內部元素的鍵

當年話下 2023-09-21 10:48:03
我有一個數組,它有鍵并且在一個對象內。嘗試獲取數組內元素的鍵。當我搜索 4512 時,我應該得到 Eggs_code 密鑰。const items = {  storeItems: {    milk_code: [1212, 9898, 1214],    vegetables_code: [2222, 75674, 8943, 3452],    eggs_code: [4543, 4512, 1754, 9090]  }}if (items.storeItems.includes(4512)) {  const type = Object.keys(items(4512);  console.log(type);}
查看完整描述

4 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

在此:


const search_q = 4512;

let k = null;


const items = {

  storeItems: {

    milk_code: [1212, 9898, 1214],

    vegetables_code: [2222, 75674, 8943, 3452],

    eggs_code: [4543, 4512, 1754, 9090]

  }

}


Object.keys(items.storeItems).forEach(item => {

  if(items.storeItems[item].includes(search_q))

      k = item;

})


console.log(k)


查看完整回答
反對 回復 2023-09-21
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

用途Object.entries及find方法


const items = {

  storeItems: {

    milk_code: [1212, 9898, 1214],

    vegetables_code: [2222, 75674, 8943, 3452],

    eggs_code: [4543, 4512, 1754, 9090],

  },

};


const getKey = (obj, val) =>

  Object.entries(obj)

    .find(([key, arr]) => arr.includes(val))

    ?.shift();

    

    

console.log(getKey(items.storeItems, 4512));


查看完整回答
反對 回復 2023-09-21
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

您可以編寫一個小函數來為您完成此操作。該函數在第一次找到代碼時進行匹配。


const items = {

? store_items: {

? ? milk_code: [1212, 9898, 1214],

? ? vegetables_code: [2222, 75674, 8943, 3452],

? ? eggs_code: [4543, 4512, 1754, 9090]

? }

}


function find_code( code, object ) {

? for( const property in object )

? ? if( object[property].includes(code) ) return property;

??

? return undefined;

}


console.log( find_code( 4512, items.store_items ) );

console.log( find_code( 1200, items.store_items ) );

console.log( find_code( 8943, items.store_items ) );

請注意,您正在迭代 an?Object,而不是Array.?for..of您可以使用或迭代對象for..in。我使用了for..in,因為它默認提取屬性名稱。


查看完整回答
反對 回復 2023-09-21
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

您需要迭代 的鍵/值對storeItems,搜索值以返回鍵


const findKey = (obj, search) => {

  for (let [ key, val ] of Object.entries(obj)) {

    if (val.includes(search)) return key

  }

  return null

}


const items = {

  storeItems: {

    milk_code: [1212, 9898, 1214],

    vegetables_code: [2222, 75674, 8943, 3452],

    eggs_code: [4543, 4512, 1754, 9090]

  }

}


console.info(findKey(items.storeItems, 4512))


這將返回找到的第一個具有匹配值的鍵(按定義順序)。


如果該值可以出現在多個值中并且您想要返回所有匹配項,則可以使用簡單的過濾器


const findKeys = (obj, search) => {

  return Object.keys(obj).filter(key => obj[key].includes(search))

}


const items = {

  storeItems: {

    milk_code: [1212, 9898, 1214, 4512], // added 4512 here

    vegetables_code: [2222, 75674, 8943, 3452],

    eggs_code: [4543, 4512, 1754, 9090]

  }

}


console.info(findKeys(items.storeItems, 4512))


查看完整回答
反對 回復 2023-09-21
  • 4 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號