[英]How do I call this function successfully to return a value? JSON.parse()
我正在嘗試解決規模平衡方面的代碼挑戰。 包含兩個元素的秤,第一個元素是天平上的兩個正整數權重(左側和右側),第二個元素是可用權重列表(正整數)。
例如,如果秤是["[5, 9]", "[1, 2, 6, 7]"]
,則表示存在一個秤,秤的左側重量為5,重量為9。右邊。 規模可以像這樣平衡2,6
條件
我已經能夠用硬編碼的值來做功能的console.log並且它起作用了。 此外,如果沒有數字可以平衡,該函數將返回“比例不平衡”。 但是我似乎無法動態調用該函數。
HTML
...
<input type="text" id="balance" required>
...
<input type="text" id="weights" required>
<div class="button" id="calculateWeight" onclick="balanceIt()">
<input type="submit" value="Calculate Weight"></div>
<div id="displayResult"></div>
我想成功調用ScaleBalancing函數以返回一個字符串(如果已調用)。 當我嘗試ScaleBalancing([`${[balance]}`, `${[weights]}`]))
,它返回
未捕獲到的SyntaxError:JSON中位於JSON.parse()位置1的意外令牌o
JavaScript的
function ScaleBalancing(strArr) {
let balance = JSON.parse(strArr[0]);
let weight = JSON.parse(strArr[1]);
const one = balance[0]
const two = balance[1];
for (let i = 0; i < weight.length; i++) {
let weighted = '' + weight[i];
if (one + weight[i] === two || two + weight[i] === one) {
//let weighted = '' + weight[i];
return weighted;
}
for (let j = i + 1; j < weight.length; j++) {
if (one + weight[i] + weight[j] === two ||
two + weight[i] + weight[j] === one ||
one + weight[i] === two + weight[j] ||
two + weight[i] === one + weight[j]
) {
let balancedScale = '' + weight[i] + ',' + weight[j];;
return balancedScale;
}
}
}
return 'scale imbalanced';
}
var balanceIt = function() {
let weights = document.getElementById("weights").value;
let balance = document.getElementById("balance").value;
const Scale = ScaleBalancing([`${[balance]}`, `${[weights]}`]);
document.getElementById("displayResult").innerText = Scale;
console.log(Scale);
};
document.getElementById("calculateWeight").onclick = balanceIt;
這對我也不起作用。 我所做的是從javascript定義它,因此我確定在調用它之前已確定該方法已定義。
我相信發生的是單擊方法與balanceIt方法不在同一范圍內,這就是為什么它未被識別的原因。
希望對你有幫助
var balanceIt = function() {
let weights = document.getElementById("weights").value;
let balance = document.getElementById("balance").value;
let scale = ScaleBalancing([`${[balance]}`, `${[weights]}`]);
document.getElementById("displayResult").innerText = scale;
};
document.getElementById("calculateWeight").onclick = balanceIt;
例如,如果您輸入的是“ 1,2”,則
`${[balance]}`
只會導致“ 1,2”,這不是正確的JSON字符串。
相反,您想要的是(請注意不同的方括號位置):
ScaleBalancing([`[${balance}]`, `[${weights}]`]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.