18.01.2016, 21:54
|
Новичок на форуме
|
|
Регистрация: 18.01.2016
Сообщений: 5
|
|
json данные, сумма чисел.
Есть такой вот скрипт
<script>
function sIncrease(i, ii) {
if(!i.online) return 1;
if(!ii.online) return -1;
var pl1 = parseInt(i.players.split('/')[0],10);
var pl2 = parseInt(ii.players.split('/')[0],10);
if (pl1 > pl2)
return -1;
else if (pl1 < pl2)
return 1;
else
return 0;
}
var offline = '<img src="http://image.www.gametracker.com/images/maps/160x120/nomap.jpg">';
var Data;
var AllowToRent = false;
$(document).ready(function(){
$.getJSON('http://site.ru/file.json', function(data) {
Data = data;
Data.sort(sIncrease);
for(var i = 0; i< Data.length ; i++)
{
if(typeof(Data[i]) != "undefined" )
{
var dataRow = Data[i];
if(dataRow.online)
{
$( "#monitoring" ).append( "тут html код "+dataRow.players +"" );
}
}
}
});
});
</script>
вывод в html через <div id=" monitoring"></div>
В json файле есть значения "players":"5/20" допустим, их очень много.
Выводится через "+dataRow.players +"
Как получить сумму всех значений которая находится до слеша и вывести её аналогичным образом?
Так же, сейчас стоит сортировка по первому значению до слеша, чем больше, тем выше по списку оно выводит.
Последний раз редактировалось frealy121212, 18.01.2016 в 22:01.
|
|
18.01.2016, 21:55
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
frealy121212,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
18.01.2016, 22:04
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
frealy121212,
завести переменную для суммы с величиной 0 и прибавлять к ней нужное значение , а после цикла вывести куда вам нужно
|
|
18.01.2016, 22:06
|
Новичок на форуме
|
|
Регистрация: 18.01.2016
Сообщений: 5
|
|
Сообщение от рони
|
frealy121212,
завести переменную для суммы с величиной 0 и прибавлять к ней нужное значение , а после цикла вывести куда вам нужно
|
очень плох в javascript и данная задача для меня почти невозможна (пока что), этот код писал не я.
хотелось бы примера или желательно сразу нужный код.
|
|
18.01.2016, 22:08
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
frealy121212,
тогда нужен пример data хотя бы на три игрока
|
|
18.01.2016, 22:11
|
Новичок на форуме
|
|
Регистрация: 18.01.2016
Сообщений: 5
|
|
Сообщение от рони
|
frealy121212,
тогда нужен пример data хотя бы на три игрока
|
не совсем понял что нужно, но массив такой.
[
{"куча не нужных переменных","players":"16/24","еще куча"},
{"куча не нужных переменных","players":"1/20","еще куча"},
{"куча не нужных переменных","players":"13/13","еще куча"}
]
|
|
18.01.2016, 22:13
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
frealy121212,
у online какие параметры ?
|
|
18.01.2016, 22:14
|
Новичок на форуме
|
|
Регистрация: 18.01.2016
Сообщений: 5
|
|
true\false
этот параметр определяет работает ли сервер вообще.
|
|
18.01.2016, 22:45
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
frealy121212,
медитируйте ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
var data = [
{"online": true,"players":"16/24","name" : "SSS"},
{"online": false,"players":"1/20","name" : "TTT"},
{"online": true,"players":"13/13","name" : "PPP"}
];//убрать
function fn(c) {
c = c.filter(function(a) {
return a.online
}).sort(function(a, b) {
return b.players.split("/")[0] - a.players.split("/")[0]
}).reduce(function(a, b) {
$("#monitoring").append("Игрок " + b.name + " результат : " +b.players + "<br>"); // b.name убрать
return a + +b.players.split("/")[0]
}, 0);
$("#monitoring").append("Итого : " + c)
};
fn(data);//это убрать ниже раскоментировать
/* $.getJSON('http://site.ru/file.json', fn); */
});
</script>
</head>
<body>
<div id="monitoring"></div>
</body>
</html>
|
|
18.01.2016, 23:12
|
Новичок на форуме
|
|
Регистрация: 18.01.2016
Сообщений: 5
|
|
Сообщение от рони
|
frealy121212,
медитируйте ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
var data = [
{"online": true,"players":"16/24","name" : "SSS"},
{"online": false,"players":"1/20","name" : "TTT"},
{"online": true,"players":"13/13","name" : "PPP"}
];//убрать
function fn(c) {
c = c.filter(function(a) {
return a.online
}).sort(function(a, b) {
return b.players.split("/")[0] - a.players.split("/")[0]
}).reduce(function(a, b) {
$("#monitoring").append("Игрок " + b.name + " результат : " +b.players + "<br>"); // b.name убрать
return a + +b.players.split("/")[0]
}, 0);
$("#monitoring").append("Итого : " + c)
};
fn(data);//это убрать ниже раскоментировать
/* $.getJSON('http://site.ru/file.json', fn); */
});
</script>
</head>
<body>
<div id="monitoring"></div>
</body>
</html>
|
попробую.
|
|
|
|