Вычислить разные проценты в одной функции - PullRequest
0 голосов
/ 04 августа 2020

У меня есть таблица значений и их процентов примерно так:

astroid a  nickel: 20%   water: 25%  cobalt: 55%
astroid b  nickel: 30%   water: 35%  cobalt: 45%
astroid c  nickel: 240%  water: 45%  cobalt: 65%

У меня есть общая масса астероида, поэтому мне нужно рассчитать для каждого астероида количество никеля, воды и т. Д. c

Масса астероида - это опора, которую я передаю от своего родительского компонента, откуда я извлекаю данные, и передаю их своему дочернему компоненту.

import React, { Component } from "react";

export default class Asteroids extends Component {
  render() {
    let t = 1;
    t = t + Math.round(Math.log(this.props.item.mass));
    console.log(t, "test");

    
    function percentage(num, per) {
      return (num / 100) * per;
    }

    console.log(percentage(this.props.item.mass, 0.12));

    return (
      <div className="as">
        <ul className="dashed">
          <li> Type: {this.props.item.type}</li>
          <li> Name: {this.props.item.name}</li>
          <li> days left until mining</li>
          <li> Mass: {this.props.item.mass}</li>
          <li> mining days: {t}</li>
        </ul>
      </div>
    );
  }
}

Я хочу создать функция, которая вычисляет каждый процент содержания водяного никеля et c на астероид.

Как мне go об этом?

1 Ответ

0 голосов
/ 04 августа 2020

Вам нужно определить типы как объект, надеюсь, вы поймете функцию cal c.

// you need to define types as an object
const types = {
  a : { nickel: 20,   water: 25,  cobalt: 55 },
  b : { nickel: 30,   water: 35,  cobalt: 45 },
  c : { nickel: 240,  water: 45,  cobalt: 65 }
}

// your asteroid object
const asteroid = { name: "sofia", type: "c", mass: 60000 }

function calcAmount(ast){
  const calcPerc = (per, mass) => (mass / 100) * per;
  const typeObj = types[ast.type];
  const returnObj = {}
  for(let key in typeObj){
    returnObj[key] = calcPerc(typeObj[key], ast.mass)
  }
  return returnObj
}

// now you can extract the amount of minerals
console.log(calcAmount(asteroid))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...