为什么我得到" u"在尝试映射二维数组时?

时间:2016-09-23 12:27:06

标签: javascript arrays multidimensional-array

我正在努力让玉米也有"果汁"在它结束时,我正在试验一个二维数组。如果我取出阵列并将其制作成1d,那么我就可以获得" juice"在每个水果的最后。异常是玉米,我无法展示玉米汁。"事实上,以下输出给了我" u。"

为什么我得到" u"使用以下代码,以及如何使用映射方法返回"玉米汁"在2d数组内?

fruits = ["corn"["apple","orange","grape"]];

var fruitJuice = fruits.map(function (fruit){
return fruit + " juice";
});

fruitJuice[0][0];

1 个答案:

答案 0 :(得分:0)

fruits = ["corn"["apple","orange","grape"]];

没有多大意义。 执行此操作

fruits = ["corn","apple","orange","grape"]; // a normal linear array

除非你是这个意思?

fruits = ["corn",["apple","orange","grape"]]; //an array  with  a string and array (2d)

或者这个?

fruits = {"corn":["apple","orange","grape"]}; //an object where corn represents the array

更新:访问所有级别并添加'果汁',虽然在这种情况下做一些奇怪的事情,我会这样做 - 使用地图这将是无益的

fruits = ["corn",["apple","orange","grape"]];

juices = [];
for (var i in fruits){
     if(fruits[i].constructor === Array){
        for (var x in fruits[i]){
              juices.push(fruits[i][x] + " juice");
        }
     }else{
        juices.push(fruits[i] + " juice");
     }
}

alert(juices);

//juices

这假设元素可以是数组或字符串....