Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在嵌套数组中循环,然后使用Javascript按预定义顺序存储输出_Javascript_Arrays_For Loop_Google Apps Script_Nested - Fatal编程技术网

如何在嵌套数组中循环,然后使用Javascript按预定义顺序存储输出

如何在嵌套数组中循环,然后使用Javascript按预定义顺序存储输出,javascript,arrays,for-loop,google-apps-script,nested,Javascript,Arrays,For Loop,Google Apps Script,Nested,编辑18.01.21(参见螺栓更改) 我很难找到一种方法来循环嵌套数组,然后按所需顺序存储输出。你能帮我想一个办法让这一切顺利进行,或者指出我做错了什么吗 我想我在这个过程中遗漏了几个步骤。例如,在某个点中断内部循环并临时存储数据。然而,我不确定在什么时候。。。值得一提的是,该代码旨在用于谷歌应用程序脚本 我使用的玩具数据如下所示: 我在我的玩具数据中添加了另一类关键字——“criss cross”和“bob ross” var keywords = [ [ ["claude&quo

编辑18.01.21(参见螺栓更改)

我很难找到一种方法来循环嵌套数组,然后按所需顺序存储输出。你能帮我想一个办法让这一切顺利进行,或者指出我做错了什么吗

我想我在这个过程中遗漏了几个步骤。例如,在某个点中断内部循环并临时存储数据。然而,我不确定在什么时候。。。值得一提的是,该代码旨在用于谷歌应用程序脚本

我使用的玩具数据如下所示: 我在我的玩具数据中添加了另一类关键字——“criss cross”和“bob ross”

var keywords =  [ [ ["claude"],["clair"],["carl"], ["criss cross"] ],
                [ ["brad"],["bob"],["bill"] ["bob ross"] ] ];
我希望实现的输出如下所示:

[ [ [ '[claude] '],[ '"claude"' ],[ '+claude' ] ],
[ [ '[clair]' ],[ '"clair"' ],[ '+clair' ] ],
[ [ '[carl]' ],[ '"carl"' ],[ '+carl' ] ],
[ [ '[criss cross]' ],[ '"criss cross"' ], [ '+criss +cross' ] ],
[ [ '[brad]' ],[ '"brad"' ],[ '+brad' ] ],
[ [ '[bob]' ],[ '"bob"' ],[ '+bob' ] ],
[ [ '[bill]' ],[ '"bill"' ],[ '+bill' ] ],
[ [ '[bob ross]' ],[ '"bob ross"' ], [ '+bob +ross' ] ] ]

但是,我创建的输出如下所示:

[ [ [ '[claude]' ],[ '[clair]' ],[ '[carl]' ],[ '[brad]' ],[ '[bob]' ],[ '[bill]' ] ],
[ [ '"claude"' ],[ '"clair"' ],[ '"carl"' ],[ '"brad"' ],[ '"bob"' ],[ '"bill"' ] ],
[ [ '+claude' ],[ '+clair' ],[ '+carl' ],[ '+brad' ],[ '+bob' ],[ '+bill' ] ] ]
以下是我使用的代码:

var keywords =  [[["claude"],["clair"],["carl"]],
                [["brad"],["bob"],["bill"]]];

var keywords = [].concat.apply( [], keywords );
const PERMUTATION = function permuation( item ) {
    var exact = [];
    var phrase = [];
    var modyfied = [];
      
    for( let i = 0 ; i < item.length ; i++ ) {
    
      var output1 = "[" + item[i] + "]";
      exact.push([output1]);
    
      var output2 = '"' + item[i] + '"';
      phrase.push([output2]);
    
      var temp = [item[i][0].split(" ").map( i => "+" + i ).join(" ")];
      modyfied.push(temp);
    }
    return new Array( exact, phrase, modyfied ) ;
  }

  var output = PERMUTATION(keywords);
  console.log(output)
var关键字=[[[“克劳德”],[“克莱尔”],[“卡尔”],
[“布拉德”]、[“鲍勃”]、[“比尔”]];
var关键字=[].concat.apply([],关键字);
常量置换=函数置换(项){
var精确=[];
var短语=[];
var modyfied=[];
for(设i=0;i“+”+i.join(“”));
模推(温度);
}
返回新数组(精确、短语、modyfid);
}
var输出=排列(关键字);
console.log(输出)
解决方案
var关键字=[
[“克劳德”]、[“克莱尔”]、[“卡尔”],
[“布拉德”]、[“鲍勃”]、[“比尔”],
];
让结果=关键字
.flatMap((i)=>i)
.map((关键字)=>
[“[key]”、“[key]”、“+key]”。map((currentKey)=>[
currentKey.replace(/key/g,关键字[0]),
])
);

控制台日志(结果)您可以展开阵列并映射所需的样式

const
关键词=[[“clau de”],[“clair”],[“carl”],[[“brad”],[“bob”],[“bill”],
结果=关键字
.平坦(无限)
.map(v=>[`[${v}]`,`${v}``,v.split('').map(v=>`+${v}`.).join('').map(v=>[v]);
控制台日志(结果)

作为控制台包装{max height:100%!important;top:0;}
我不确定结果应该是什么,但电子表格的结构如下所示:

[ [ [ '[claude] '],[ '"claude"' ],[ '+claude' ] ],
[ [ '[clair]' ],[ '"clair"' ],[ '+clair' ] ],
[ [ '[carl]' ],[ '"carl"' ],[ '+carl' ] ],
[ [ '[criss cross]' ],[ '"criss cross"' ], [ '+criss +cross' ] ],
[ [ '[brad]' ],[ '"brad"' ],[ '+brad' ] ],
[ [ '[bob]' ],[ '"bob"' ],[ '+bob' ] ],
[ [ '[bill]' ],[ '"bill"' ],[ '+bill' ] ],
[ [ '[bob ross]' ],[ '"bob ross"' ], [ '+bob +ross' ] ] ]

可乐 可乐 可乐 可乐 可乐 1. 2. 3. 4. 5. 6. 7. 8. 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
谢谢你的意见,尼娜。我稍微修改了我的问题。我在我的玩具数据集中又添加了两个关键词——“criss cross”和“bob ross”。如果我理解正确,您的代码将返回
[+bob ross]
作为输出。但是,我需要
[+bob+ross]
作为输出。这就是我在上一个语句中使用
.split
.join
的原因。是否可以相应地更改您的代码?事实上,所讨论的关键字可能超过两个单词。因此,代码在这方面需要灵活。@jonasjohajohanson,请参阅编辑。谢谢您的输入,Ivan。你的代码可以工作。不过,我稍微修改了我的问题。我在我的玩具数据集中又添加了两个关键词——“criss cross”和“bob ross”。如果我理解正确,您的代码将返回
[+bob ross]
作为输出。但是,我需要
[+bob+ross]
作为输出。这就是我在上一个语句中使用
.split
.join
的原因。是否可以相应地更改您的代码?重要的是要注意,关键字可能不仅仅是两个单词<代码>[“这是一个测试”]
也可以。