Вы можете избежать дублирования ключей в карте (которая действительно то, что вы описываете здесь), используя простой объект.
var map = {};
function setFavorite(name, value) {
map[name] = value;
}
В качестве альтернативы, если вы хотите об ошибке при попытке ввести дубликат, а не перезаписывать, вы можете:
function setFavorite(name, value) {
if (map[name]) {
throw new Error('Cannot insert duplicate value');
}
map[name] = value;
}
Чтобы получить значение по ключу, доступ будет его по имя свойства, которое вы сохранили. Обратите внимание: если значение ключа является переменной, вы должны использовать обозначение массива (с помощью скобок []
).
var value = map[key]
или
var value = map.keyHappenedToBeValidIdentifier
Повторить через карту, используйте Object.keys
.
Object.keys(map).forEach(function(key) {
var value = map[key];
// do some useful work with the value
});
ES6/ES2015 будет включать в себя класс 'Set', который обеспечивает набор. То, что вы описываете, скорее похоже на «карту». – Pointy
Также это не имеет особого отношения к jQuery. – Pointy
Обновленный вопрос @Pointy, SO предложил поместить ярлык jquery .. Можем ли мы сделать то же самое в основном javascript? , можете ли вы, пожалуйста, обновить скрипку, это поможет легко понять –