gpt4 book ai didi

javascript - For 语句循环遍历数组和数组项到基于模式识别追加匹配的新数组

转载 作者:行者123 更新时间:2023-12-02 23:56:07 25 4
gpt4 key购买 nike

我没有从该函数中得到预期的结果。我期望的是我将有四个数组,其中包含多个项目。但相反,我对控制台中的所有内容都未定义。以下是我对该功能的说明:

Your job is to loop over this array and put items with similarities into four brand new arrays using regular expressions and the Array.push() method:

  • one named og for items that end with og and are 3 letters long or less
  • one named at for items that end with at that are longer than 3 letters
  • one named numberFirst for items that start with numbers
  • one named numberLast for items that end with numbers

对于我的 if 和 else if 语句,我让它们测试该项目是否与我在顶部创建的表达式匹配。如果匹配,则评估为 true。我认为要么是我的 if 语句错误,要么是我为模式识别创建正则表达式的方式错误。

var mainList = ['catalog', 'dog', 'cat', 'hog', 'muskrat', 'World War 3', 'blog', 'frog', '25th of March', 'bat', 'log', 'March 25', 'slog', '10 Downing street', 'flat', 'fat', 'splat', 'blat', 'frat', 'rat', '23 Skidoo', 'Catch 22', '10 4 Good Buddy', 'fog'];
var re = /$og/; //one named 'og' for items that end with 'og' and are 3 letters long or less//
var re2 = /$at/; //one named 'at' for items that end with 'at' that are longer than 3 letters//
var re3 = /[^0-9]/; //one named 'numberFirst' for items that start with numbers//
var re4 = /$[0-9]/; //one named 'numberLast' for items that end with numbers
var arrayOG = [];
var arrayAT = [];
var arrayNumberFirst = [];
var arrayNumberLast = [];

function loop(item) {
for (var i = 0; i < mainList.length; i++) {
if (re.test(item) == true && item.length <= 3) {
arrayOG.push(item);
console.log(arrayOG);
} else if (re2.test(item) == true && item.length > 3) {
arrayAT.push(item);
console.log(arrayAT);
} else if (re3.test(item) == true) {
arrayNumberFirst.push(item);
console.log(arrayNumberFirst);
} else if (re4.test(item) == true) {
arrayNumberLast.push(item);
console.log(arrayNumberLast);
}
}
}
loop();

最佳答案

您在函数定义中将 item 声明为函数参数
函数循环(项目){
但稍后当调用函数 loop() 时,您实际上并没有传递任何内容。
然后,对于循环的每次迭代,项目都是未定义的。
而不是

function loop(item) {
for (var i = 0; i < mainList.length; i++) {
...
}
}

你应该尝试

function loop() {
for (var i = 0; i < mainList.length; i++) {
const item = mainList[i];
...
}
}

关于javascript - For 语句循环遍历数组和数组项到基于模式识别追加匹配的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55384372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com