Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.11.2018, 05:10
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Aetae
...ключи, ...значения, ...хочется чтобы любая задача решалась красиво и аккуратно... нет няшного литерала... писать на своём особом js с блэкджеком...
В итоге у вас получится код, который никто не поймёт. И вы уже не сможете сказать, что пишете на JavaScript.

С этим примером всё в порядке, я бы не сказал, что ассоциативный массив в JavaScript оторван от реальности. Во всяком случае в сравнении с другими языками вам не нужно писать ни на порядок меньше, ни на порядок больше кода.

JavaScript
const pets = new Map([
	["Scratchy", "Guinea Pig"],
	["Squeeky", "Guinea Pig"],
	["Fluffy", "Rabbit"],
	["Thumper", "Rabbit"],
	["Snoopy", "Dog"],
	["Tiddles", "Cat"]
]);

for(const [key, value] of pets) {
	console.log(`Свойство: ${key}. Значение свойства: ${value}`);
}


C#
Запустить
using System;
using System.Collections.Generic;

class MainClass {
	public static void Main (string[] args) {
		var pets = new Dictionary<String, String> {
			{ "Scratchy", "Guinea Pig" },
			{ "Squeeky", "Guinea Pig" },
			{ "Fluffy", "Rabbit" },
			{ "Thumper", "Rabbit" },
			{ "Snoopy", "Dog" },
			{ "Tiddles", "Cat" }
		};

		foreach(var pair in pets) {
			Console.WriteLine($"Свойство: {pair.Key}. Значение свойства: {pair.Value}");
		}
	}
}


Haskell
Запустить
pets :: [(String, String)]
pets =
  [
    ("Scratchy", "Guinea Pig"),
    ("Squeeky", "Guinea Pig"),
    ("Fluffy", "Rabbit"),
    ("Thumper", "Rabbit"),
    ("Snoopy", "Dog"),
    ("Tiddles", "Cat")
  ]

main :: IO()
main = mapM_ (
  \(key, value) -> putStrLn $
    "Свойство: " ++ key ++ ". Значение свойства: " ++ value
  ) pets


C++
Запустить
#include <map>
#include <iostream>
#include <cassert>

using namespace std;

int main(int argc, char **argv) {
	map<string, string> pets = {
		{ "Scratchy", "Guinea Pig" },
		{ "Squeeky", "Guinea Pig" },
		{ "Fluffy", "Rabbit" },
		{ "Thumper", "Rabbit" },
		{ "Snoopy", "Dog" },
		{ "Tiddles", "Cat" }
	};

	for(auto const& [key, value] : pets) {
		cout
			<< "Свойство: "
			<< key
			<< ". Значение свойства: "
			<< value
			<< endl;
	}
	
	return 0;
}


Swift
Запустить
let pets = [
	"Scratchy": "Guinea Pig",
	"Squeeky": "Guinea Pig",
	"Fluffy": "Rabbit",
	"Thumper": "Rabbit",
	"Snoopy": "Dog",
	"Tiddles": "Cat"
]

for (key, value) in pets {
	print("Свойство: \(key). Значение свойства: \(value)")
}

Последний раз редактировалось Malleys, 19.11.2018 в 05:19.
Ответить с цитированием
  #12 (permalink)  
Старый 19.11.2018, 08:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Malleys,
Ответить с цитированием
  #13 (permalink)  
Старый 19.11.2018, 23:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Смотри в чём засада: когда мы делаем так
const pets = new Map([
    ["Scratchy", "Guinea Pig"],
    ["Squeeky", "Guinea Pig"],
    ["Fluffy", "Rabbit"],
    ["Thumper", "Rabbit"],
    ["Snoopy", "Dog"],
    ["Tiddles", "Cat"]
]);
мы создаём сначала шесть массивов, по две строки в каждом, потом ещё один массив содержащий эти шесть массивов, затем передаём всё это дело в конструктор, и только после некоего (вовсе не бесплатного) преобразования получаем Map. Совершенно лишние промежуточные телодвижения, оверхэд.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод рекламного кода через javascript sosnovskij AJAX и COMET 0 11.04.2016 16:23
Вывод ссылки через Javascript johny_torr Общие вопросы Javascript 5 08.12.2013 22:44
вывод времени php + javascript TTongorovortoto Ваши сайты и скрипты 2 29.10.2011 00:11
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34