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

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

React js 組件 - 平均函數工作出現問題 - 我正在使用 db.json 假 api 調用

React js 組件 - 平均函數工作出現問題 - 我正在使用 db.json 假 api 調用

手掌心 2023-09-28 15:40:02
我在 localhost:3000 上使用假 db.json 并在另一臺服務器上運行react.js。React.js 代碼的新內容。我需要獲取 db.json 文件中評論星級的平均值。這是破壞網站的代碼功能......    const getAverage = (reviews) => {        reviews.map((review) => {            return review.stars.reduce((a.review.stars, b.review.stars => (a.review.stars + b.review.stars), 0) / review.stars.length;        });    };我調用它的方式總是有語法錯誤......<div><p className="totalReviewsTally">Average: {getAverage(reviews.stars)} {reviews.length}</p></div>我的組文件header.jsimport React, {useState, useEffect} from "react";import './index.css';import './images/gup_logo.svg';import './images/gup_logo_text.svg';import './images/mapMarker.svg';import './images/solidStar.svg';import './images/emptyStar.svg';import './images/halfStar.svg';import './images/makeFaveShop.svg';import './images/unFaveShop.svg';import './images/contactButton.svg';import './images/shopCart.svg';import { Link } from "@reach/router";const Header = (props) => {    const [shopOwnerInfo, setShopOwnerInfo] = useState([]);    const [reviews, setReviews] = useState([]);    useEffect(() => {        const getJsonOwnerData = async () => {            const response = await fetch(`http://www.localhost:3000/shopOwner/1`);            const responseShopOwner = await response.json();            setShopOwnerInfo(responseShopOwner);        };        const getReviews = async () => {            const response = await fetch(`http://www.localhost:3000/reviews`);            const reviewsResponse = await response.json();            setReviews(reviewsResponse);        };        getReviews();        getJsonOwnerData();    }, []);    const getAverage = (reviews) => {        reviews.map((review) => {            return review.stars.reduce((a.review.stars, b.review.stars => (a.review.stars + b.review.stars), 0) / review.stars.length;        });    };
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

簡單的方法,一步步處理。


const getAverage = (reviews) => {

    let TotalStars = reviews.reduce((prev, curr) => (curr.stars + prev), 0)

    // TotalStars is 3.6666 

    // below use any one of them averageStars

    // let averageStars = Math.round(TotalStars/reviews.length);  // output 4

    // let averageStars = Math.floor(TotalStars/reviews.length);  // output 3

    let averageStars = Math.floor((TotalStars/reviews.length)*10)/10;// output 3.6

    return averageStars;

};


<div>

    <p className="totalReviewsTally">Average: {getAverage(reviews)} {reviews.length}</p>

</div>


查看完整回答
反對 回復 2023-09-28
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

您忘記return了評論getAverage,我已嘗試解決一些問題,如果這仍然不起作用,請告訴我。


根據你的評論


Reviews = [ { "text": "太可愛了,喜歡它!", "stars": 4, "id": 1 }, { "text": "手工制作很可愛,但第一次洗就褪色了。", "stars": 2, "id": 2 }, { "text": "給我最好的朋友的第一個孩子的好禮物。", "stars": 5, "id": 3 } ]



const getAverage = (reviews) => {

   return Math.round(reviews.reduce((acc, curr) => (acc + curr.stars), 0) / reviews.length));

};



    <div>

      <p className="totalReviewsTally">Average: { getAverage(reviews) } {reviews.length}</p>

    </div>


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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