Я работаю над домашней задачей, и она продолжает возвращать ту же ошибку. Вот проблема. Напишите функцию с именем "json_average", которая принимает строку в формате JSON в качестве параметра в формате массива объектов, где каждый объект имеет ключи "масса", "плотность", "температура" и "скорость" и каждая клавиша сопоставляется с числом с плавающей запятой. Эта функция должна возвращать среднюю «скорость» всех объектов в массиве в виде строки JSON в формате {"velocity":}
Я пробовал переключать вещи, например, используя let s = 0 и var = 0, в любом случае это все еще не работает. Вот код, который я пробовал.
function json_average(x) {
let data = JSON.parse(x);
var s = 0 ;
var n = 0;
var a;
for (let i of data) {
a = i["velocity"];
s = s + a ;
n = n + 1 ;
}
let d = {"velocity" : (s/n)};
return(JSON.stringify(d));
}
Когда я отправляю код, это то, что он возвращает.
`error on input ['[{"mass": 3.55, "density": 380.72, "velocity": 33.11, "temperature": 46.8}, {"mass": 91.37, "density": 572.04, "velocity": 64.43, "temperature": -0.13}, {"mass": 40.4, "density": 124.52, "velocity": 52.8, "temperature": 38.81}, {"mass": 68.92, "density": 326.77, "velocity": 31.64, "temperature": 43.71}, {"mass": 3.22, "density": 419.85, "velocity": 70.64, "temperature": 23.58}]']:`
ReferenceError: s is not defined
let s = s + 1;
вводит новую неинициализированную переменнуюs
, к которой вы пытаетесь добавить 1. Почитайте, чем на самом деле занимаютсяvar
иlet
. - person Raymond Chen   schedule 05.11.2019