2016-09-30 1 views
-3

Я пытаюсь пройти через 3 места и выбрать место с самыми высокими средними оценками и рейтингом.Разработка среднего обзора javascript

Скажите, что у меня есть следующее.

var places = [{ 
    name: "place 1", 
    reviews: 100, 
    rating: 5, 
},{ 
    name: "place 2", 
    reviews: 10000, 
    rating: 5, 
},{ 
    name: "place 3", 
    reviews: 10000000, 
    rating: 4, 
}]; 

for (i = 0; i < places.length; i++) { 

    // loop through and calculate the highest average reviews 
    var rating = places[i].rating; 
    var reviews = places[i].reviews; 

    // work out the average score place 3 should be the highest 

} 

http://jsbin.com/loyequluke/edit?js,console,output

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

Правильный результат будет 3, но я не знаю, как это сделать, пожалуйста, пожалуйста.

+1

Найдите минутку, чтобы посмотреть, что вы написали. Как вы думаете, '(A * B)/B' бы даже сделал? –

+0

любые предложения, и вот почему я задаю вопрос? @ AndréDion вы можете объяснить, почему у меня нет необходимых данных. – user1503606

+1

Что означают «отзывы» и «рейтинг»? Что значит иметь «отзывы: 10000000» и «рейтинг: 4»? –

ответ

1

Пожалуйста, проверьте код, указанный ниже, и дайте мне знать, если это сработает для вас или нет. Поскольку я не знаю, как вы рассчитываете самый высокий балл, я предполагаю, что это (rating * reviews)/rating, согласно которому вы получаете значение. Вы можете запустить приведенный фрагмент кода и посмотреть результат для себя. В принципе, у вас есть идея рассчитать, это лучше всего подходит для небольших записей с несколькими сотнями.

var places = [{ 
 
    name: "place 1", 
 
    reviews: 100, 
 
    rating: 5, 
 
}, 
 
{ 
 
    name: "place 3", 
 
    reviews: 30000000, 
 
    rating: 23, 
 
}, 
 

 
{ 
 
    name: "place 2", 
 
    reviews: 10000, 
 
    rating: 5, 
 
},{ 
 
    name: "place 3", 
 
    reviews: 10000000, 
 
    rating: 4, 
 
}]; 
 

 
var highest = []; 
 
for (i = 0; i < places.length; i++) { 
 
    
 
    // loop through and calculate the highest average reviews 
 
    var rating = places[i].rating; 
 
    var reviews = places[i].reviews; 
 

 
    highest.push((rating * reviews)/rating); 
 
    
 
    // work out the average score place 3 should be the highest 
 

 
} 
 

 
var highestRating = highest[0]; 
 
var pos = 0; 
 

 
for (i = 0; i < highest.length; i += 1) { 
 
    if (highestRating < highest[i]) { 
 
     highestRating = highest[i]; 
 
     pos = i; 
 
    } 
 
} 
 

 
console.log('Highest Rating: ', highestRating); 
 
console.log('Found at position: ', pos); 
 
console.log('Place with highest score : ', places[pos]);

Дайте нам знать, если это работает для вас или нет.

+0

Может ли '(рейтинг * рецензий)/рейтинг' быть каким-то образом упрощен? – Biffen

+0

Я не знаю, средний расчет до OP, поэтому я ничего не могу сказать об этом. – Samundra

+0

Well' (оценка * отзывы)/рейтинг == отзывы'. А нужны ли две петли? – Biffen