Используя jQuery.data для хранения списка объектов

Но, Вы, возможно, изобрели Монады!

sigfpe говорит:

, Но все они представляют монады как что-то нуждающееся тайное объяснения. Но то, что я хочу обсудить, - то, что они не являются тайными вообще. На самом деле сталкивающийся с различными проблемами в функциональном программировании Вы велись бы, непреклонно, к определенным решениям, все из которых являются примерами монад. На самом деле я надеюсь заставить Вас изобретать их теперь, если Вы уже не имеете. Это - тогда маленький шаг, чтобы заметить, что всеми этими решениями является на самом деле то же скрытое решение. И после чтения этого, Вы могли бы быть в лучшем положении для понимания других документов о монадах, потому что Вы распознаете все, что Вы рассматриваете как что-то, что Вы уже изобрели.

Многие проблемы, которые монады пытаются решить, связаны с проблемой побочных эффектов. Таким образом, мы запустим с них. (Обратите внимание, что монады позволяют, Вы действительно больше, чем обрабатываете побочные эффекты, в особенности много типов контейнерного объекта могут быть просмотрены как монады. Некоторым введениям в монады трудно согласовать эти два различного использования монад и концентрата всего на один или другой.)

На императивном языке программирования, таком как C++, функции не ведут себя ничто как функции математики. Например, предположите, что у нас есть функция C++, которая берет единственный аргумент с плавающей точкой и возвращает результат с плавающей точкой. Поверхностно это могло бы немного походить на математическую функцию, отображающую реалы на реалы, но функция C++ может сделать больше, чем просто возврат число, которое зависит от его аргументов. Это может считать и записать значения глобальных переменных, а также записи выведенного на экран и получение входа от пользователя. На чистом функциональном языке, однако, функция может только считать то, что предоставляется ей в ее аргументах и единственном способе, которым она может иметь эффект на мир, через значения, которые она возвращает.

5
задан Brian Tompsett - 汤莱恩 7 November 2015 в 22:08
поделиться

3 ответа

Вы можете хранить что угодно как данные jQuery, поэтому вы можете сделать это:

var myData = [ { id: 4, setting: 2 }, [ id:3, setting:1 ] };

$("#myitem").data("mydata", myData);

Если вы хотите выбрать что-то по идентификатору, вы можете сделать это:

var myData = {};

myData[4] = 2;
myData[3] = 1;

$("#myitem").data("mydata", myData);

Затем вы можете получить доступ к своим настройкам вот так:

var value = $("#myitem").data("mydata")[3]; // returns 1
8
ответ дан 14 December 2019 в 01:14
поделиться

Вы можете использовать массивы для хранения списков и объектов JSON для хранения пар ключ-значение.

<div id="DIV1"></div>
<div id="DIV2"></div>
<div id="DIV3"></div>
<div id="DIV4"></div>
<table><tbody><tr id="TR1"><td><td/></tr></tbody></table>
<script type="text/javascript">
$(function() {
    $("#TR1").data("blah", [{id: 4, setting: 2}, {id: 3, setting: 1}]);
    $("#DIV1").text($("#TR1").data("blah")[0].id);
    $("#DIV2").text($("#TR1").data("blah")[0].setting);
    $("#DIV3").text($("#TR1").data("blah")[1].id);
    $("#DIV4").text($("#TR1").data("blah")[1].setting);
});
</script>
0
ответ дан 14 December 2019 в 01:14
поделиться

У меня сейчас не так много времени, чтобы попробовать это, но вместо того, чтобы хранить простую строку напротив ключа, почему бы не сохранить объект напротив него?

Перефразируя это jquery docs ...

$("div").data("blah", {id: 4,setting: 2});
var myBlah = $("div").data("blah");
var id = myBlah["id"];
var setting = myBlah["setting"];

Дайте мне знать, как у вас дела.

1
ответ дан 14 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: