第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在 API 中使用不同的計算規(guī)則

在 API 中使用不同的計算規(guī)則

阿晨1998 2022-01-07 14:09:12
比方說,我有一個 JS 對象數(shù)組,它看起來像:var forceData =     [        {           "mass":5,          "acceleration":2,          "ruleToCalculateForce":"mass * acceleration"       },       {           "mass":5,          "acceleration":3,          "ruleToCalculateForce":"mass * acceleration"       }    ]ruleToCalculateForce 包含如何使用牛頓定律使用質(zhì)量和加速度計算力,即力 = 質(zhì)量 * 加速度。此鍵的值與與其關(guān)聯(lián)的鍵具有相同的名稱(質(zhì)量和加速度)?,F(xiàn)在我想要的是根據(jù) ruleToCalculateForce 中定義的規(guī)則計算將質(zhì)量和加速度相乘的結(jié)果。所以,我想說的是,是否可以將對象的forceData數(shù)組轉(zhuǎn)換為這樣的東西,其中可以根據(jù) ruleToCalculateForce 中定義的規(guī)則計算結(jié)果(新鍵):var forceData =     [        {           "mass":5,          "acceleration":2,          "result" : 10,          "ruleToCalculateForce":"mass * acceleration"       },       {           "mass":5,          "acceleration":3,          "result" : 15,          "ruleToCalculateForce":"mass * acceleration"       }    ]forceData 規(guī)則可以是動態(tài)的。假設(shè)力數(shù)據(jù)是這樣的:var forceData =         [            {               "mass":5,              "acceleration":2,              "ruleToCalculateForce":"mass + acceleration"           },           {               "mass":5,              "acceleration":3,              "ruleToCalculateForce":"mass + acceleration"           }        ]然后更新的對象數(shù)組應(yīng)該執(zhí)行求和而不是乘法,它應(yīng)該是:var forceData =         [            {               "mass":5,              "acceleration":2,              "result" : 7,              "ruleToCalculateForce":"mass + acceleration"           },           {               "mass":5,              "acceleration":3,              "result" : 8,              "ruleToCalculateForce":"mass + acceleration"           }        ]
查看完整描述

2 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗 獲得超7個贊

將函數(shù)表示為字符串是可能的,但既危險又丑陋。這通常需要eval方法或函數(shù)構(gòu)造函數(shù),這兩者都是不受歡迎的。


相反,由于您沒有說將函數(shù)存儲為字符串是必需的,因此我建議將函數(shù)存儲為函數(shù)。


let forceRule1 = obj => obj.mass * obj.acceleration;

let forceRule2 = obj => obj.mass + obj.acceleration;


let forceData = [

  {

    'mass': 5,

    'acceleration': 2,

    'ruleToCalculateForce': forceRule1

  }, {

    'mass': 5,

    'acceleration': 3,

    'ruleToCalculateForce': forceRule2

  }

];


forceData.forEach(obj => obj.resultForce = obj.ruleToCalculateForce(obj));

console.log(forceData);


編輯,根據(jù)評論,規(guī)則必須是字符串。在這種情況下,使用 eval 或函數(shù)構(gòu)造函數(shù)可以工作:


let forceData = [

  {

    'mass': 5,

    'acceleration': 2,

    'ruleToCalculateForce': 'mass * acceleration'

  },

  {

    'mass': 5,

    'acceleration': 3,

    'ruleToCalculateForce': 'mass + acceleration'

  }

];


forceData.forEach(obj => obj.result = 

    new Function('mass', 'acceleration', `return ${obj.ruleToCalculateForce}`)(obj.mass, obj.acceleration));

console.log(forceData);



查看完整回答
反對 回復(fù) 2022-01-07
?
人到中年有點甜

TA貢獻(xiàn)1895條經(jīng)驗 獲得超7個贊

從樣本數(shù)據(jù)和描述來看,我猜你只有一種規(guī)則要計算?然后你可以使用這個:


forceData.forEach(element => {

      element["result"] = element.mass * element.acceleration;

    });

此外,在這種情況下,您不需要將規(guī)則存儲在對象中。


但是,如果您有任何其他規(guī)則,并在此處提供,我可以編輯代碼。


希望能幫助到你,


查看完整回答
反對 回復(fù) 2022-01-07
  • 2 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號