当数组名称不一致时如何循环遍历对象数组?
How to looping trough an array of object when array name is not consistent?
考虑以下示例:
const obj ={
price:[{multiple items},{multiple items}],
name:"",
id:"",
}
我想在价格 属性 上申请 foreach 但问题是 属性 名称正在改变 wrt cases like saleprice , taxprice 等
如果我使用 obj.keys() 方法它不起作用,因为它 returns 键作为字符串。
你可以试试这个:
const obj = {
price: [10, 20, 30],
name: "",
id: "",
};
const pricePropertyName = Object.keys(obj).find((prop) => prop.includes('price'));
if (pricePropertyName) {
obj[pricePropertyName].forEach(el => {
console.log(el);
});
}
const key = Object.keys(obj).find((key) => key.indexOf('price') > -1)
obj[key].forEach(price => console.log(price))
您可以使用“Object.values()”或“Object.fromEntries()”来获取值或同时获取键和值。
const obj ={
price:[{multiple items},{multiple items}],
name:"",
id:"",
}
const priceArray = Object.values(obj).find( value => Array.isArray(value))
仅供参考
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values
考虑以下示例:
const obj ={
price:[{multiple items},{multiple items}],
name:"",
id:"",
}
我想在价格 属性 上申请 foreach 但问题是 属性 名称正在改变 wrt cases like saleprice , taxprice 等
如果我使用 obj.keys() 方法它不起作用,因为它 returns 键作为字符串。
你可以试试这个:
const obj = {
price: [10, 20, 30],
name: "",
id: "",
};
const pricePropertyName = Object.keys(obj).find((prop) => prop.includes('price'));
if (pricePropertyName) {
obj[pricePropertyName].forEach(el => {
console.log(el);
});
}
const key = Object.keys(obj).find((key) => key.indexOf('price') > -1)
obj[key].forEach(price => console.log(price))
您可以使用“Object.values()”或“Object.fromEntries()”来获取值或同时获取键和值。
const obj ={
price:[{multiple items},{multiple items}],
name:"",
id:"",
}
const priceArray = Object.values(obj).find( value => Array.isArray(value))
仅供参考
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values