【问题标题】:How to return ALL existing arrays? Is this possible?如何返回所有现有数组?这可能吗?
【发布时间】:2014-02-07 17:43:21
【问题描述】:

我正在编写一个脚本,我需要返回所有具有所有索引的现有数组,因为它们都由同一个函数调用。 这可能吗? 我的脚本是一个shell脚本,但我很好奇其他语言是否也可以这样做。

例如:

array=[element[0], element[1]]
array2=[element[0], element[1]]

我要返回所有数组,并获取每个数组的每个元素

function MyFunction(allArray[allIndex])

在 bash 中 [allIndex] = [@]。数组有什么东西吗?

对不起,如果这是愚蠢的,我是编程新手..

更新:我用其他语言标记了它,因为我正在学习用多种语言编程​​。我想知道这是否可能,所以如果这在 Bash 中是不可能的,想知道另一个。只是。如有错误请见谅。

【问题讨论】:

  • 所以“所有现有数组”是指在任何范围内的代码中任何位置声明的任何数组?包括嵌套数组等?要么...? “并调用每个数组的每个元素” - 你如何“调用”数组元素?你的意思是你想得到每个元素的值吗?无论如何我看不出将 bash 脚本与 JS C PHP进行比较会有什么用处。
  • 您在标记问题时是否用完了编程语言?
  • 是的,任何数组。 “它是一个函数引用数组吗?”不,我只想获取每个数组的每个元素
  • 看到了更新。为什么不专注于一种语言。首先要掌握好这一点
  • 这对我来说就像X-Y problem。我不禁想知道为什么你“需要”这样做。您的问题有点暗示您不知道可能已经定义了哪些数组,但是如果您不知道已经定义了什么,那么您肯定不知道如何对数据做任何有意义的事情。在 JS 中,您可以对全局变量引用的所有数组执行此操作,但我无法想象这样做的原因。

标签: javascript php c arrays bash


【解决方案1】:

嗯,一般来说,您可能想要返回一个包含所有数组的数组。

allArray[0] = array;
allArray[1] = array2;
...
return allArray;

然后再遍历该数组数组。

for( i = 0; i < allArraySize; i++ )
{
    array = allArray[i];
    size = array.size();
    for( j = 0; j < size; j++ )
    {
        val = array[j]; //for single dimension array
    }
}

请注意,如果您的数组是二维(或更多)数组,您最终会出现深度嵌套的 for 循环(for...{for...{for...}}}),这会导致性能不佳和可读性差,这种情况建议参考this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2012-06-21
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多