【发布时间】:2021-07-24 17:29:05
【问题描述】:
/** -- For Loop to start pairing VIN numbers to parts list -- **/
console.log('CompleteVIN: ');
console.log(completeVIN);
console.log(completeVIN[1].length);
console.log('CompleteParts: ');
console.log(completeParts);
console.log(completeParts[1].length);
var vinPartsCombine = [];
/** For loop */
for (j = 0; j < completeVIN[1].length; j++) {
for (i = 0; i < completeParts[0].length; i++){
if (completeVIN[1][j] === completeParts[1][i]) {
vinPartsCombine.push(completeVIN[0][j],completeParts[0][i]);
};
};
};
console.log(completeVIN[1][j] === completeParts[1][i]);
console.log(vinPartsCombine);
结果:
CompleteVIN:
[ [ [ 'KG257653' ],
[ 'KG250444' ],
[ 'K1239114' ],
[ 'FG160157' ],
[ 'LKA41783' ],
[ 'LKB72564' ] ],
[ [ 7653 ],
[ 444 ],
[ 9114 ],
[ 'Estimate_to_Repair' ],
[ 'transit (1)' ],
[ 'transit' ] ] ]
6
CompleteParts:
[ [ [ 'Repl LT Side bracket' ],
[ 'Repl LT Filler panel US built' ],
[ 'Repl LT H\'lamp bracket' ],
[ 'Repl LT Fender' ],
[ 'Repl LT Nameplate "SILVERADO"' ],
[ 'Repl Bumper assy single' ],
[ 'Repl Cover Car' ],
[ 'Repl Cover Car' ],
[ 'Repl Applique upper w/o special trim' ],
[ 'Repl Corrosion protection primer' ],
[ 'Repl Cover Car' ],
[ 'Replace LT Fender (Aftermarket)' ],
[ 'Replace LT Nameplate "SILVERADO"' ],
[ 'Repl LT Lower molding' ],
[ 'Repl LT End cap w/o blind spot' ],
[ 'Repl LT Side extn w/o extended frame' ],
[ 'Repl LT Bumper outer support' ],
[ 'Repl LT Bumper inner support' ],
[ 'Repl LT Bumper' ],
[ 'Repl Aerial assembly' ],
[ 'Repl Cover Car' ],
[ 'Repl Corrosion protection primer' ],
[ 'Repl Cover Car' ],
[ 'Repl Cover Car' ],
[ 'Repl Corrosion protection primer' ] ],
[ [ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 444 ],
[ 9114 ],
[ 9114 ],
[ 9114 ],
[ 'Estimate_to_Repair' ],
[ 'Estimate_to_Repair' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit' ],
[ 'transit' ],
[ 'transit' ] ] ]
25
true
[]
我的 for 循环不会按我想要的方式工作,但是当我将条件更改为 != 时它会运行,但不是我想要的输出。
- 完整的 VIN 数组由 VIN 号和源名称组成
- CompleteParts 数组由 Parts 和 Source Names 组成
for 循环是在源匹配时按源搜索每个数组,然后将其推送到 vinPartsCombine 数组,以便将其与 vin 编号和部件描述配对。在源不匹配之前,它将切换到具有新源名称的下一个 vin 编号元素。
completeVIN = [[[ 'KG257653' ],
[ 'KG250444' ],
[ 'K1239114' ],
[ 'FG160157' ],
[ 'LKA41783' ],
[ 'LKB72564' ]],
[[ 7653 ],
[ 444 ],
[ 9114 ],
[ 'Estimate_to_Repair' ],
[ 'transit (1)' ],
[ 'transit' ]]];
CompleteParts = [ [ [ 'Repl LT Side bracket' ],
[ 'Repl LT Filler panel US built' ],
[ 'Repl LT H\'lamp bracket' ],
[ 'Repl LT Fender' ],
[ 'Repl LT Nameplate "SILVERADO"' ],
[ 'Repl Bumper assy single' ],
[ 'Repl Cover Car' ],
[ 'Repl Cover Car' ],
[ 'Repl Applique upper w/o special trim' ],
[ 'Repl Corrosion protection primer' ],
[ 'Repl Cover Car' ],
[ 'Replace LT Fender (Aftermarket)' ],
[ 'Replace LT Nameplate "SILVERADO"' ],
[ 'Repl LT Lower molding' ],
[ 'Repl LT End cap w/o blind spot' ],
[ 'Repl LT Side extn w/o extended frame' ],
[ 'Repl LT Bumper outer support' ],
[ 'Repl LT Bumper inner support' ],
[ 'Repl LT Bumper' ],
[ 'Repl Aerial assembly' ],
[ 'Repl Cover Car' ],
[ 'Repl Corrosion protection primer' ],
[ 'Repl Cover Car' ],
[ 'Repl Cover Car' ],
[ 'Repl Corrosion protection primer' ] ],
[ [ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 7653 ],
[ 444 ],
[ 9114 ],
[ 9114 ],
[ 9114 ],
[ 'Estimate_to_Repair' ],
[ 'Estimate_to_Repair' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit (1)' ],
[ 'transit' ],
[ 'transit' ],
[ 'transit' ] ] ];
var vinPartsCombine = [];
/** For loop */
for (j = 0; j < completeVIN[1].length; j++) {
for (i = 0; i < CompleteParts[1].length; i++){
if (completeVIN[1][j] == CompleteParts[1][i]) {
vinPartsCombine.push(completeVIN[0][j],CompleteParts[0][i]);
};
};
};
console.log(completeVIN[1][j] === CompleteParts[1][i]);
console.log(vinPartsCombine);
【问题讨论】:
-
仅仅是因为你写的是
completeParts[0].length而不是completeParts[1].length(“1”)吗? -
我在第一个循环中这样做是因为我希望我的 j 值在我的 completeVIN 数组中循环 6 次。因为那个只有 6 个值,或者 6 个源要查看。虽然我的部件数组有 25 个值并且源在该数组中重复,所以应该有多个匹配项。每个源值。 1 是源列,但这并不重要,因为 [0] 或 [1] 的长度相同。如果我只使用 completeParts.length 则长度为 2。
-
好吧有道理。我稍微清理了日志以使其更具可读性。我还建议您提供一个(仍然相关的)示例,其中的项目较少,只是为了更容易阅读/推理
-
好的,我想我在 sn-p 中重新创建了相同的问题。感谢您的帮助,谢谢。唯一的问题是谷歌脚本使用 (.push) 我会在 JavaScript 中使用 append()
标签: javascript arrays for-loop google-apps-script google-sheets