用于电子表格的Javascript对象中的输出数组

用于电子表格的Javascript对象中的输出数组,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,这是我的密码 function order() { //declare things var order = [3, 2, 1, 0] var testOne = [2, 3, 7, 4] var testTwo = ["c", "b", "a", "d"] //sort by order var collatedArray = []; for (var i = 0; i < order.length; i++) { index = order

这是我的密码

function order() {

  //declare things
var order = [3, 2, 1, 0]
var testOne = [2, 3, 7, 4]
var testTwo = ["c", "b", "a", "d"]


//sort by order
  var collatedArray = [];
    for (var i = 0; i < order.length; i++)
    {
        index = order[i];
        var collated =
        {
           test1 : testOne[index],
           test2 : testTwo[index]
        }
        collatedArray.push(collated);
    }


  //Create output
  var output = [];
  for (i=0; i<collatedArray.length; i++)
  {
    output[i] = collatedArray[i].test1
  }

return output
}
如果我将输出[I]=collatedArray[I].test1更改为test2,则得到:

d, a, b, c
我只想输出整个数组(test1和test2),以便得到:

4, 7, 3, 2
d, a, b, c
不需要输出变量,也不需要转换回数组。信息都在那里,我就是不知道怎么弄出来。对编码非常陌生,只是不了解这里要做什么:(
感谢将
output
调整为包含两个数组的数组;在最后一个
for
循环中,使用
collatedArray[0][i]处的值填充
output
中的每个数组。test1
collatedArray[1][i]。test2

  // Create output
  var output = [[], []]; 
  for (i=0; i<collatedArray.length; i++)
  {
    output[0][i] = collatedArray[i].test1;
    output[1][i] = collatedArray[i].test2;
  }
//创建输出
var输出=[],[];

对于(i=0;i将
output
调整为包含两个数组的数组;在最后一个
for
循环中,使用
collatedArray[0][i]处的值填充
output
中的每个数组。test1
collatedArray[1][i]。test2

  // Create output
  var output = [[], []]; 
  for (i=0; i<collatedArray.length; i++)
  {
    output[0][i] = collatedArray[i].test1;
    output[1][i] = collatedArray[i].test2;
  }
//创建输出
var输出=[],[];

对于(i=0;i有几种方法可以做到这一点,包括将每个testNumber(
testOne
testTwo
,等等)存储在由属性组成的对象中。了解对象如何工作,在这里观察了您的代码之后,您应该能够轻松地找出如何循环每个属性(在你的例子中是数组)所说的
对象
打印出你要找的东西。如果你想不出来,有大量的堆栈溢出问答可以很好地涵盖这一点

但现在,这里有一个简单的替代方案:数组数组


注意:当您单击提供的JSFIDLE链接时,您可能需要刷新页面以查看加载到控制台中的相应结果。或者,在迁移到该链接时,让控制台保持打开状态。

有几种方法可以做到这一点,包括存储每个测试编号(
testOne
testTwo
,等等)在一个由属性组成的对象中。了解对象的工作原理,在观察了这里的代码之后,您应该能够轻松地找出如何循环遍历每个属性(在您的情况下是数组)如果你想打印出你要找的东西,有大量的堆栈溢出问答可以很好地涵盖这一点

但现在,这里有一个简单的替代方案:数组数组


注意:当您单击提供的JSFIDLE链接时,您可能需要刷新页面以查看加载到控制台中的相应结果。或者,在迁移到该链接时,将控制台保持打开状态。

由于您希望将其用于电子表格,因此我假设您需要可以导入电子表格程序的CSV输出字符串。

function row(source, sequence) {
  var temp = new Array(sequence.length);    
  for (var i = 0; i < sequence.length; i++)
    temp[i] = source[sequence[i]];
  return temp.join(",")
}

function order() {

  //declare things
  var sequence = [3, 2, 1, 0];
  var testOne = [2, 3, 7, 4];
  var testTwo = ["c", "b", "a", "d"];

  var rows = [];
  rows.push(row(testOne, sequence));
  rows.push(row(testTwo, sequence));
  return rows.join("\r\n");
}
函数行(源、序列){
var temp=新数组(序列长度);
对于(变量i=0;i

既然您希望将其用于电子表格,我假设您想要一个可以导入电子表格程序的CSV输出字符串

function row(source, sequence) {
  var temp = new Array(sequence.length);    
  for (var i = 0; i < sequence.length; i++)
    temp[i] = source[sequence[i]];
  return temp.join(",")
}

function order() {

  //declare things
  var sequence = [3, 2, 1, 0];
  var testOne = [2, 3, 7, 4];
  var testTwo = ["c", "b", "a", "d"];

  var rows = [];
  rows.push(row(testOne, sequence));
  rows.push(row(testTwo, sequence));
  return rows.join("\r\n");
}
函数行(源、序列){
var temp=新数组(序列长度);
对于(变量i=0;i

我对返回数据时希望数据的外观有点困惑。您是在寻找类似于
[4,7,3,2,d,a,b,c]
?您是如何使用此功能的?输出在何处?创建
collatedArray
而不将其返回到您需要此功能的任何地方似乎是一种浪费data@senschen类似于我在上面发布的内容,当我添加它时,test1和test2的新行以及可能的test3等等spreadsheet@charlietfl我正在转换数据a在电子表格中,带有=transpose(order())。是的,这是一种浪费,我正试图这么做。我想返回collatedArray而不使用输出,但它只给我空白数据,我不知道如何输出一个对象数组。然后你就不能按原样返回
collatedArray
,然后使用
[someobj].test1
获取第一行,而
[someobj].test2
获取第二行?还是希望它们以字符串形式由换行符分隔?我对返回数据时希望数据的外观感到有点困惑。您是否在寻找类似于
[4、7、3、2、d、a、b、c]的内容
?您是如何使用此功能的?输出在何处?创建
collatedArray
而不将其返回到您需要此功能的任何地方似乎是一种浪费data@senschen类似于我在上面发布的内容,当我添加它时,test1和test2的新行以及可能的test3等等spreadsheet@charlietfl我正在转换数据a在电子表格中,带有=transpose(order())。是的,这是一种浪费,我正试图这么做。我想返回collatedArray而不使用输出,但它只给我空白数据,我不知道如何输出一个对象数组。然后你就不能按原样返回
collatedArray
,然后使用
[someobj].test1
获取第一行,而
[someobj].test2
获取第二行?还是希望它们以一个字符串形式,用换行符分隔?谢谢。这可以解决问题。但是没有办法只在collatedArray中输出对象,而不创建新的输出数组以将它们移到整数
function row(source, sequence) {
  var temp = new Array(sequence.length);    
  for (var i = 0; i < sequence.length; i++)
    temp[i] = source[sequence[i]];
  return temp.join(",")
}

function order() {

  //declare things
  var sequence = [3, 2, 1, 0];
  var testOne = [2, 3, 7, 4];
  var testTwo = ["c", "b", "a", "d"];

  var rows = [];
  rows.push(row(testOne, sequence));
  rows.push(row(testTwo, sequence));
  return rows.join("\r\n");
}