JavaScript中如何通过idMeal键值获取对象的其他属性值
实现方案
以下是两种常见场景下的实现方式,以JavaScript为例:
场景1:操作单个独立对象
如果只有单个目标对象,直接判断idMeal匹配后取对应属性即可:
const meal = { "idMeal": "52795", "strMeal": "Chicken Handi", "strDrinkAlternate": null, "strCategory": "Chicken", "strArea": "Indian" } const targetId = "52795" // 匹配id后取属性 if (meal.idMeal === targetId) { const mealName = meal.strMeal const mealCategory = meal.strCategory console.log(mealName, mealCategory) // 输出:Chicken Handi Chicken }
场景2:操作包含多个餐品的对象数组
如果是批量存储的餐品数组,先通过idMeal匹配到目标对象再取属性:
const mealList = [ { "idMeal": "52795", "strMeal": "Chicken Handi", "strCategory": "Chicken", "strArea": "Indian" }, // 其他餐品对象... { "idMeal": "52796", "strMeal": "Beef Curry", "strCategory": "Beef", "strArea": "Indian" } ] const targetId = "52795" // 查找匹配id的对象 const targetMeal = mealList.find(item => item.idMeal === targetId) if (targetMeal) { // 可通过解构赋值批量取需要的属性 const { strMeal, strCategory, strArea } = targetMeal console.log(strMeal, strCategory, strArea) }
如果需要频繁通过id查询,建议先把数组转为以idMeal为键的映射表,查询效率更高:
// 生成映射表 const mealMap = mealList.reduce((map, item) => { map[item.idMeal] = item return map }, {}) // 直接查表取值 const targetMeal = mealMap["52795"] if (targetMeal) { console.log(targetMeal.strMeal, targetMeal.strCategory) }
内容的提问来源于stack exchange,提问作者adamteddychang
相关产品推荐
相关产品推荐

