Как получить максимальное значение в поле «id» в библиотеке vis. js? - PullRequest
0 голосов
/ 18 февраля 2020

Я обнаружил vis. js, особенно сетевой модуль.

Мне нужно получить максимальное значение поля "id" моего набора данных узлов:

var nodes = new vis.DataSet([ {id: 1, label: "Node 1"}, {id: 2, label: "Node 2"}, {id: 3, label: "Node 3"}]);

Лучшее, что я смог сделать до сих пор, - это использовать forEach l oop:

var max=0;
nodes.forEach(function(el){j=parseInt(el.id);if(j!=NaN && j>max){max=j;}});
console.log("max: ", max);

Мне кажется, это НЕ МОЖЕТ быть способом сделать это. Я видел max(field) метод, задокументированный в do c для vis 'DataSet (https://visjs.github.io/vis-data/data/dataset.html):

max (поле) [Object | null] Найти элемент с максимальным значением указанного поля. Возвращает ноль, если элемент не найден.

Но как бы глупо это ни звучало, я просто не могу заставить его работать. Я попытался:

console.log("max: ", nodes.max('id'));
console.log("max: ", nodes.max(node => node.id));
console.log("max: ", nodes.max(node => node['id']));

Как я могу просто получить максимальное значение поля 'id' всех записей набора данных?

[Редактировать] Идентификаторы в приведенном выше примере это цифры c ({id: 1, ...}).
В моем случае это были строки ({id: '1', ...}), и именно в этом и заключалась проблема.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

После множества потерянного времени я наконец понял, что max () отлично работает с цифрами c ID.
Моя первая мысль была тогда: Чтение do c могло бы сэкономить мне часы. ..

... Но проверяя https://visjs.github.io/vis-network/docs/network/nodes.html, он явно определяет ID как строку:

[name:] id [type:] String [default:] undefined [description:] Идентификатор узла. Идентификатор является обязательным для узлов, и они должны быть уникальными. Очевидно, это должно быть установлено для каждого узла, а не глобально.

Так что будьте осторожны: это должна быть строка, но если это строка, некоторые функции не работают.
Если Я все еще что-то упускаю, буду рад прочитать ваши комментарии.

0 голосов
/ 19 февраля 2020

попробуйте эту строку:

nodes.max('id').id

node.max ('id') вернет узел со значением максимального идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...