2015-09-04 3 views
1

Я очень новичок, когда дело доходит до массивов. Прежде, чем я буду просто жестко кодировать все через htm.Создать массив из значения массива

Это мой вопрос. Можно ли создать массив из значения другого массива?

var pmmain =["aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp"]; 

Например, я хочу создать массив из «aaa» и так далее. Является ли это возможным? Любая помощь будет оценена по достоинству. Благодаря!

Update:

Я использовать массив в качестве меню. Когда я нажимаю один, он делает что-то вроде этого.

a=4; 

for (a=c; a<d; a++){ 

$("#pm-page-main") .append("<div class=\"main-box\" id=\"m-box"+a+"\"><div class=\"title-box\"><span class=\"reg-wht-bold\">"+pmmain[a]+"</span></div><BR><BR><img src=\"imgs\\"+pmmain[a]+".png\"></div>").hide().fadeIn(75);\} 

"# highlights-enclosure" - это своего рода этап, когда на веб-сайте выделяется щелчок.

Теперь, когда меню отображается на веб-странице, скажем, я хочу нажать на второй элемент, который будет «bbb». После нажатия на это появится другое меню, и в нем должны быть дети. Когда один из детей будет нажат, дети заменят «bbb» на этапе «# highlights-enclosure».

+0

ли вы имеете в виду сделать массив с именем '' aaa' в pmmain'? Как 'pmmain [0] = {" aaa ": []}', или, может быть, что-то более простое: 'pmmain = [[aaa"], "bbb", ..] '? Или новый отдельный массив с таким значением '' aaa''' в нем? –

+0

Я обновил свой вопрос, так как он отсутствовал в информации – Selim

+2

Я не знаю, что вы хотите делать. Но я почти уверен, что вы делаете это неправильно. – connexo

ответ

0

Доступ конкретный индекс и завернуть его в скобки

var pmmain =["aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp"]; 
 

 
var newArray = [pmmain[0]]; 
 

 
console.log(newArray);

Избегайте использования new Array, потому что, если передаваемый в элементе массива происходит, чтобы быть рядом, он рассматривается как параметр для arrayLength

var pmmain =[1, "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp"]; 
 

 
var newArray = new Array(pmmain[0]); 
 

 
console.log(newArray);

+0

Не используйте 'new Array (pmmain [0])'.Это не будет сделано правильно, если 'pmmain [0]' является числом. – Barmar

+0

@Barmar, ничего себе! Я не знал этого. Это потому, что передача числа является параметром длины массива? – AmmarCSE

+1

Да, в этом проблема. 'new Array (5)' создает массив с 5 пустыми элементами. – Barmar

0

При создании нового массива Ваших, может push значения к нему:

var first = ['a', 'b', 'c']; 
var second = []; 
second.push(first[0]); 
second.push(first[1]); 

Надеются, что это помогает!

0
var pmain = ["aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp"]; 
var subArr = function(arr) { 
var newArr = [] 
    for (var i in arr) { 
     var each = [arr[i]]; 
     for (var j in each) { 
      each = each[j].split(""); 
     } 
     newArr.push(each); 
    } 
return newArr; 
} 
0

Я предполагаю, что вы хотите превратить вашу текущую структуру данных в нечто вроде этого:

[['aaa'], ['bbb']] // and so on 

Если это так, просто map его:

var newArray = pmmain.map(function(item) { 
    return [item]; 
}); 

Если вы хотите, чтобы ваша структура данных выглядела так:

[['a','a','a'], ['b','b','b']] // etc. 

Тогда это сделать:

var newArray = pmmain.map(function(item) { 
    return [item.split('')]; 
}); 
Смежные вопросы