Puh数组在之前创建的空数组中

问题描述 投票:0回答:3

我在一个数组中推入两个数组,但不能将它们用作字符串,这导致在一个数组中大约有两个数组:

Array(0) [] //This is empty array that I create before and push these two array bellow to them 
length:2
0:Array(1) ["cfdb9868-0f69-5781-b1e4-793301280788"]
1:Array(1) ["cfdb9868-0f69-5781-b1e4-793301280788"]

并且我创建了一个用于访问它们的文件,但是我可以!我写这段代码“

for(var index = 0 ; index < Array.length ; ++index) {
  let Each_String_In_Brackets = Array[index] ;
  console.log(Each_String_In_Bruckets);
}

为什么会这样!

我的意思是为什么当我们在空数组中推送数组时无法访问它们!我想访问它们的内容,每个方括号中都有一个字符串。

javascript arrays push
3个回答
0
投票
   var arr = [];
   arr.push(["cfdb9868-0f69-5781-b1e4-793301280788"]);
   arr.push(["cfdb9868-0f69-5781-b1e4-793301280788"]);

   //assuming inside array always will be one element:
   arr.forEach((item)=>{ console.log(item[0])})

   //if inside array may be multiple elements, then use this
   arr.forEach((item, index)=>{
      item.forEach((child)=>{ console.log(child)})
   })

1
投票

您正在按数组推送数组,因此必须以2D数组访问:

var array = [];
var arrayString1 = ["StringInArray1"],
  arrayString2 = ["StringInArray2"];
array.push(arrayString1);
array.push(arrayString2);

console.log(JSON.stringify(array));

array.forEach(arrayItem => {
  console.log("StringInArray: " + arrayItem[0]);
})

或者也许您想附加数组:

var array = [];
var arrayString1 = ["StringInArray1"],
  arrayString2 = ["StringInArray2"];
[].push.apply(array, arrayString1);
[].push.apply(array, arrayString2);

console.log(JSON.stringify(array));

array.forEach(arrayItem => {
  console.log("StringInArray: " + arrayItem);
})

0
投票

将完整的数组推入另一个数组使其成为2D数组(在推入另一个数组的索引处),例如,如果我有第一个数组

BArray[]

但是如果我将另一个数组放入其中

BArray2 = [1,2,3,4];
BArray.push(Array2);

我们将无法仅通过]来访问它>

BArray[0] 

这将返回

整个array2,而不是array2的内容,索引为0。因此,您可以这样做
BArray[0][0] 

因此,这将使我们(从您的数组中获得)"cfdb9868-0f69-5781-b1e4-793301280788"

如果您只是想将BArray2的内容转储到BArray您可以使用点差运算符。

BArray[...BArray2];

(同样,我也不会使用Array作为变量名!因为new Array(10);是创建数组的一种方法,而使用具有该名称的数组不是最佳做法,所以可能会造成混淆!)

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.