![](/img/trans.png)
[英]How to iterate over a object that is returned asynchronously and display it in react.js?
[英]How do i iterate over an array of object in react.js and add the values of prices in the object as shown below
const data = [
{
id: 1,
title: "buttermilk pancakes",
category: "fullstack",
price: 15.99,
img: "./img/item-1.jpeg",
desc: `I'm baby woke mlkshk wolf bitters live-edge blue bottle, hammock freegan copper mug whatever cold-pressed `,
},
{
id: 2,
title: "diner double",
category: "backend",
price: 13.99,
img: "./img/item-2.jpeg",
desc: `vaporware iPhone mumblecore selvage raw denim slow-carb leggings gochujang helvetica man braid jianbing. Marfa thundercats `,
},
];
export default data;
在這里,我使用 map 遍歷了 object,但返回的結果顯示了迭代后的價格總和。 我還使用了 JavaScript function reduce,但也沒有用。
const Test = () => {
let sum = 0;
return (
<div>
{data.map((items) => {
const values = items.price;
sum = values + sum;
console.log(Math.max(sum));
const { id } = items;
return (
<div key={id}>
<p>{sum}</p>
</div>
);
})}
</div>
);
};
我如何使用反應獲得價格的總價值?
您可以使用reduce
function 來實現這一點
data.reduce((sum, p)=> sum+p.price, 0);
您可以在組件中使用它
const Test = ()=> {
return <div>{data.reduce((sum, p)=> sum+p.price, 0);}</div>
}
您可以使用forEach
而不是map
簡單地實現總價的計算(因為 map 有自己的用例,例如創建新數組,而forEach
僅適用於我們的簡單迭代,就像在您的用例中一樣) :
const data = [{ id: 1, title: 'buttermilk pancakes', category: 'fullstack', price: 15.99, img: './img/item-1.jpeg', desc: `I'm baby woke mlkshk wolf bitters live-edge blue bottle, hammock freegan copper mug whatever cold-pressed `, }, { id: 2, title: 'diner double', category: 'backend', price: 13.99, img: './img/item-2.jpeg', desc: `vaporware iPhone mumblecore selvage raw denim slow-carb leggings gochujang helvetica man braid jianbing. Marfa thundercats `, } ]; var sum = 0; data.forEach(subData => sum += subData.price); console.log(sum) // return this `sum` value alone in your div tag below. //return <div>{sum}</div>
請參考此代碼,它可能對您的代碼有所幫助
const Test = () => {
let sum = 0;
data.forEach((item) => {
sum = sum + item.price;
});
return(
<div> {sum} </div>
)
}
const Test = ()=> {
var prices = data.map(({price})=> price).reduce((a, b)=> a+b, 0);
return(
<div>
{prices}
</div>
)
}
謝謝大家,我也試過這個,它奏效了。 在此處輸入代碼
做這個:
const data = [{
id: 1,
title: 'buttermilk pancakes',
category: 'fullstack',
price: 15.99,
img: './img/item-1.jpeg',
desc: `I'm baby woke mlkshk wolf bitters live-edge blue bottle, hammock freegan copper mug whatever cold-pressed `,
},
{
id: 2,
title: 'diner double',
category: 'backend',
price: 13.99,
img: './img/item-2.jpeg',
desc: `vaporware iPhone mumblecore selvage raw denim slow-carb leggings gochujang helvetica man braid jianbing. Marfa thundercats `,
}
];
var sum = 0;
for (const i of data) {
sum = sum + i.id;
}
const Test = ()=> {
return(
<div>
{data.map((items)=>{
const values = items.price;
sum = values + sum;
console.log(Math.max(sum));
const{id} = items;
return(
<div key={id}>
<p>{sum}</p>
</div>
)
})}
</div>
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.