【问题标题】:Puh array in empty array that create before之前创建的空数组中的 Puh 数组
【发布时间】:2020-02-21 11:15:55
【问题描述】:

我将两个数组推入一个数组但不能将它们用作字符串,这导致以下关于一个数组中的两个数组:

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


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

【讨论】:

  • 在这段代码中,只需返回这个:[“cfdb9868-0f69-5781-b1e4-793301280788”],我需要返回这个:“cfdb9868-0f69-5781-b1e4-793301280788”跨度>
  • 我假设内部数组总是一个元素,如果我错了,请纠正我 arr.forEach((item)=>{ console.log(item[0])})
【解决方案2】:

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

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); 是一种创建数组的方法,而使用该名称的数组并不是最佳实践!)

希望这会有所帮助!

【讨论】:

  • 如果我在 BArray 中有多个数组?我怎样才能访问它们?我应该为 () 创建?
  • for(let i = 0 ; i
【解决方案3】:

你是在数组中推送数组,所以你必须作为二维数组访问:

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

【讨论】:

  • 如果我想删除空括号,因为我使用它并且有几个这样的括号我怎样才能删除它们? [ ] ,[ ]
  • @Darius 如果我想删除空括号,因为我使用它并且有几个这样的括号我怎样才能删除它们? [ ] ,[ ]
  • 我无法关注你。我建议你提出新的问题,你有什么和你想要什么
  • 当我在我的程序中使用你的代码时。我得到了结果,但我的结果附近有一些空括号。想象一下,你这样写 ["StringInArray1","StringInArray2"] 并且也有 [ ] , [ ] 。我想在每一行中我都在寻找特别的东西,当在每一行中找不到它时,我会像这样:[]
  • 没有例子我不能完全重现你的想法。据我了解,如果您要推送空数组,则必须在推送if (arrayString.length) array.push(arrayString) 之前对其进行检查,或者过滤结果以删除空数组,例如:array = array.filter(item =&gt; item.length)。如果不确切知道自己拥有什么以及想要什么,就很难提出建议。
猜你喜欢
  • 2021-05-06
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多