Возможно ли, чтобы объект внутри массива переменных имел 2 значения? - PullRequest
2 голосов
/ 09 февраля 2012

Я хочу, чтобы у моего массива переменных (в JavaScript) было 2 значения: кавычка и значение true или false.Это часть кода, которую лучше поместить в нее:

var q = new Array()



q[0]='There are some people who live in a dream world, and there are some who face reality; and then there are those who turn one into the other. <i>-By Douglas Everett</i>'

q[1]='Whether you think you can or whether you think you can\'t, you\'re right! <i>-Henry Ford</i>'

q[2]='I know of no more encouraging fact than the unquestionable ability of man to elevate his life by conscious endeavor. <i>-Henry David Thoreau</i>'

q[3]='Do not let what you cannot do interfere with what you can do. <i>-John Wooden</i>'

Это одна из многих моих цитат (скоро, чтобы быть пустяками, я позаимствовал некоторый код из другого сайта, чтобы сгенерировать один из них случайным образом.) Я хочу, например, q [3] быть кавычкой и истинным или ложным значением.

Возможно ли это?Любые предложения о том, как мне это сделать иначе?

Я начинающий сценарист, извините, если это очевидный вопрос.

Ответы [ 7 ]

4 голосов
/ 09 февраля 2012

Вы можете использовать литералы объектов со свойством для хранения кавычки и другим для хранения логического значения. Так, например:

var q = []; // NEVER use new Array() and ALWAYS put a semicolon at the end of lines.

q[0] = {
    quote: 'There are some people who live in a dream world, and there are some who face reality; and then there are those who turn one into the other. <i>-By Douglas Everett</i>',
    someValue: true
};

// ...

alert(q[0].quote); // There are some people...
alert(q[0].someValue); // true
2 голосов
/ 09 февраля 2012

Хорошо, если я последую за вами, вам нужен массив объектов:

[{flag: true, text: "If you choose the red pill..."},...]

Имеет ли это смысл?

Ключ в том, что вам нужен объект JS для каждого элемента массива.

1 голос
/ 09 февраля 2012

Есть много способов сделать это, вот три:

var q = [];
q.push("Quote#1");
q.push(true);
q.push("Quote#2");
q.push(false);

for(var i = 0; i < q.length-1; i++) {
    console.log(q[i], q[i+1]);
}

или

var q = [];
q.push({quote: "Quote#1", flag: true});
q.push({quote: "Quote#2", flag: false});
for (var i = 0; i < q.length; i++) {
    console.log(q[i].quote, q[i].flag);
}

или

var q = [];
q.push(["Quote#1", true]);
q.push(["Quote#2", false]);
for (var i = 0; i < q.length; i++) {
    console.log(q[i][0], q[i][1]);
}
1 голос
/ 09 февраля 2012

Я бы, вероятно, использовал для этого литерал объекта.Что-то вроде:

var q = [];

q[0]= {Question: 'There are some people who live in a dream world, and there are some who face reality; and then there are those who turn one into the other. <i>-By Douglas Everett</i>', Answer: true};
q[1]= {Question: 'Whether you think you can or whether you think you can\'t, you\'re right! <i>-Henry Ford</i>', Answer: true};
q[2]= {Question: 'I know of no more encouraging fact than the unquestionable ability of man to elevate his life by conscious endeavor. <i>-Henry David Thoreau</i>', Answer: false};
q[3]= {Question: 'Do not let what you cannot do interfere with what you can do. <i>-John Wooden</i>', Answer: false};

window.alert(q[1].Question);
window.alert(q[1].Answer);
1 голос
/ 09 февраля 2012
var q = new Array()



q[0]= ['There are some people who live in a dream world, and there are some who face reality; and then there are those who turn one into the other. <i>-By Douglas Everett</i>', true]

q[1]=['Whether you think you can or whether you think you can\'t, you\'re right! <i>-Henry Ford</i>', false]

q[2]=['I know of no more encouraging fact than the unquestionable ability of man to elevate his life by conscious endeavor. <i>-Henry David Thoreau</i>', true]

q[3]=['Do not let what you cannot do interfere with what you can do. <i>-John Wooden</i>', false]

if (q[3][1]) {
    print q[3][0]
}
1 голос
/ 09 февраля 2012

Использовать вложенные массивы.

q[0] = ['Some quote',true];

Тогда q[0][0] - это кавычка, а q[0][1] - это истинное / ложное значение.

1 голос
/ 09 февраля 2012

Сделайте его отдельным массивом.

q[3] = ['My string....', true];

Затем используйте q[3][0] для доступа к "Моей строке ...." и q[3][1] для доступа к логическому значению.


В качестве примечания: при создании массива следует использовать сокращенную запись [] вместо new Array():

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