Переводить Python в JavaScript - Списки? - PullRequest
2 голосов
/ 16 июля 2010
octopusList = {"first": ["red", "white"],
            "second": ["green", "blue", "red"],
            "third": ["green", "blue", "red"]}
squidList = ["first", "second", "third"]

for i in range(1):
    squid = random.choice(squidList)
    octopus = random.choice(octopusList[squid])

print squid + " " + octopus

Может кто-нибудь помочь мне написать это на JavaScript?У меня большая часть моей программы написана на JavaScript, но, в частности, то, как получить список со списками, написанными на JavaScript, меня озадачило.Я новичок в программировании в целом, так что спасибо, что согласился с моими вопросами.: D

Ответы [ 4 ]

4 голосов
/ 16 июля 2010

Прежде всего, я бы хотел сказать, что эта строка for i in range(1): бесполезна.Он будет выполнять содержимое только один раз, и вы не используете i.

В любом случае, опубликованный вами код должен хорошо работать с несколькими изменениями в JavaScript.Сначала вам нужно переопределить random.choice.Вы можете использовать это:

function randomChoice(list) {
    return list[Math.floor(Math.random()*list.length)];
}

Теперь после этого все просто:

var octopusList = {
    "first": ["red", "white"],
    "second": ["green", "blue", "red"],
    "third": ["green", "blue", "red"]
};
var squidList = ["first", "second", "third"];

var squid = randomChoice(squidList);
var octopus = randomChoice(octopusList[squid]);

// You could use alert instead of console.log if you want.
console.log(squid + " " + octopus);
1 голос
/ 16 июля 2010

Подумайте об использовании модуля json для перевода структур данных из формата Python в формат JSON (который является допустимым Javascript) - и наоборот, если вам когда-либо понадобится.Например:

>>> octopusList = {"first": ["red", "white"],
...             "second": ["green", "blue", "red"],
...             "third": ["green", "blue", "red"]}
>>> print json.dumps(octopusList)
{"second": ["green", "blue", "red"], "third": ["green", "blue", "red"], "first": ["red", "white"]}
>>> 

Как видите, в этом случае «перевод» - это почти идентичность (изменение порядка в словарных записях [[в Python]] / объектных атрибутах [[в Javascript]] не имеет значения, так как ни в словах Python, ни в объектах JS нет понятия «упорядочения»; -).

1 голос
/ 16 июля 2010

... конкретно, как получить список со списками в нем, написанными на Javascript, меня озадачило.

Вы можете (также) создать список со списком в нем на JavaScript следующим образом:

var listWithList = [["a,b,c"],["d,"e","f"], ["h","i","j"]]

Потому что, когда вы кодируете в JavaScript

o = { "first" : ["red","green"],
      "second": ["blue","white"]}

На самом деле вы создаете объект JavaScript с двумя свойствами first и second, значения которых представляют собой список (или массив) для каждого элемента. Это прекрасно работает, как вы можете видеть в ответе icktoofay

Поскольку это объект JavaScript, вы можете использовать этот синтаксис для их извлечения

listOne = o.first;
listTwo = o.second;
1 голос
/ 16 июля 2010
js> octopusList = {"first": ["red", "white"],
               "second": ["green", "blue", "red"],
               "third": ["green", "blue", "red"]}

js> squidList = ["first", "second", "third"]
first,second,third

js> squid = squidList[Math.floor(Math.random() * squidList.length)]
third

js> oct_squid = octopusList[squid]
green,blue,red

js> octopus = oct_squid[Math.floor(Math.random() * oct_squid.length)]
blue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...