2015-01-18 5 views
0

Пример:массив равен самому себе

Var Ape = 1; 
    Var Banana = 5; 
    Ape = Ape + Banana; 
    document.write(Ape) 

// = Ape равна его собственной + Banana (5) = 6.

Это было весело и просто, как теперь вы делаете одно и то же кроме массивов? Как перевод выше в «языке массива» для таких «чайников», как я.

Demonstration Example(not correct): 
ape.banana= [10]; 
var gorilla = 5; 
ape.banana[0] = ape.banana[0] + gorilla; 
document.write(ape.banana[0]) 

// ape.banana [0] равно сама + горилла (5) = 15

Что является самым простым способом, и что это лучший способ?

+0

'ape.banana [] = 10;' неверный синтаксис. Это должно быть 'ape.banana = [10];' для 'ape.banana [0]' должно быть '10'. Остальная часть вашего кода верна. – techfoobar

+0

О, извините, я отредактирую и исправлю это, я устал, но это не то, что заставило меня ввести неправильный код: P. thx – NewbieLearner

ответ

1
function array_plus_int(array, int) { 
    array = array.slice(0); // clone it 
    array[0] += int; 
    return array; 
} 
var ape = [ 10 ]; 
var banana = 5; 
ape = array_plus_int(ape, banana); 
document.write(ape); 

Вы не можете переопределить математические операторы по умолчанию в JavaScript, поэтому вместо Ape = Ape + Banana вы можете сделать Ape = plus(Ape, Banana).

Теперь, как вы добавляете целое число в массив, зависит от вас. Я добавил пример реализации.

Кажется, это странная реализация для меня. Возможно, вы хотите, чтобы Ape был объектом или монадой вместо массива?

Пример:

function create_ape() { 
    var bananas = 0; 
    return { 
     give_bananas: function (num_bananas) { 
      bananas += num_bananas; 
     }, 
     get_num_bananas: function() { 
      return bananas; 
     } 
    }; 
} 

var ape = create_ape(); 
ape.give_bananas(5); 
document.write(ape.get_num_bananas()); 
+0

Спасибо, это похоже на то, что я пытаюсь решить, должен сделать трюк :) – NewbieLearner

2

Попробуйте что-то вроде:

var ape = {banana: [10]}; 
var gorilla = 5; 
ape.banana[0] = ape.banana[0] + gorilla; 
document.write(ape.banana[0]) 
+0

Прекрасно работает для меня. Вы можете распечатать объект 'ape', чтобы проверить его содержимое. –

+0

Да, это сработало, вы, ребята, выглядели слишком легко: P спасибо @nash_ag да, извините, мой плохой, я не видел, что вы изменили указанную выше линию, мое зрение становится размытым, так как мои глаза устают: P – NewbieLearner

1

Более короткий способ сделать это было бы использовать addition assignment оператор +=.

var ape = { banana: [10] }, gorilla = 5; 
document.write(ape.banana[0] += gorilla); 
0

Массивы используются для хранения подобных вещей вместе.

Если вам нужно хранить разные вещи вместе, нам понадобится объект.

Поскольку бананы и обезьяны - это разные вещи, нам, вероятно, понадобится объект. Apes есть бананы. Поэтому, если есть много обезьян и много горилл, было бы неплохо, если бы мы сделали массив для каждого. Давайте также назначим число каждой обезьяне, так как их больше одного.

var apes = []; 
for(i = 0; i < 10; i++) { 
    tempApe = {}; 
    tempApe.no = i + 1; 
    tempApe.bananas = 2 * i; 
} 
//let there be a gorilla with 5 bananas 
var gorilla = {bananas : 4}; 

//Adding apes.bananas and gorillas doesn't make sense 
//Let's add bananas of ape number 2 and our only gorilla 

var totalBananas = apes[1].bananas + gorilla.bananas; 
Смежные вопросы