【问题标题】:Create an array from a value of an array从数组的值创建数组
【发布时间】:2015-12-01 03:32:20
【问题描述】:

我对数组很陌生。在我只是通过 htm 对所有东西进行硬编码之前。

这是我的问题。是否可以从另一个数组的值创建一个数组?

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

例如,我想用“aaa”等创建一个数组。可能吗?任何帮助,将不胜感激。谢谢!

更新:

我将数组用作菜单。当我单击一个时,它会执行类似的操作。

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”。单击该按钮后,将出现另一个菜单,其中应该包含子项。当点击其中一个孩子时,孩子将替换“#highlights-enclosure”阶段中的“bbb”。

【问题讨论】:

  • 您的意思是在pmmain 中创建一个名为aaa 的数组吗?比如pmmain[0] = {"aaa": []},或者更简单的pmmain = [["aaa"], "bbb", .. ]?还是一个新的单独数组,里面只有那个值 "aaa"
  • 我更新了我的问题,因为它缺少信息
  • 我不知道你想做什么。但我几乎可以肯定你做错了。

标签: javascript jquery html arrays


【解决方案1】:

访问特定索引并用括号括起来

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);

【讨论】:

  • 不要使用new Array(pmmain[0])。如果pmmain[0] 是一个数字,它就不会做正确的事情。
  • @Barmar,哇!我不知道。是不是因为传递一个数字是数组长度的参数?
  • 是的,这就是问题所在。 new Array(5) 创建一个包含 5 个空元素的数组。
  • @Barmar,是的,这里是这样写的 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 。感谢您指出这一点:)
【解决方案2】:

当你创建一个新数组时,你可以给它push 值:

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

希望这会有所帮助!

【讨论】:

    【解决方案3】:
    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;
    }
    

    【讨论】:

      【解决方案4】:

      我假设你想把你当前的数据结构变成这样的:

      [['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('')];
      });
      

      【讨论】:

        猜你喜欢
        • 2015-08-21
        • 1970-01-01
        • 1970-01-01
        • 2022-12-11
        • 1970-01-01
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多