使用.push()向数组中添加多个项,但只添加一个-JavaScript
我是JavaScript新手,通过基于互联网的免费资源100%自学。(只是一个介绍,以防我的问题是一个愚蠢的错误) 问题是: 给定一个字符串数组,返回另一个包含其所有最长字符串的数组 范例 对于inputArray=[“aba”、“aa”、“ad”、“vcd”、“aba”],输出应为 所有最长字符串(输入阵列)=[“aba”、“vcd”、“aba”] 我的代码:使用.push()向数组中添加多个项,但只添加一个-JavaScript,javascript,arrays,Javascript,Arrays,我是JavaScript新手,通过基于互联网的免费资源100%自学。(只是一个介绍,以防我的问题是一个愚蠢的错误) 问题是: 给定一个字符串数组,返回另一个包含其所有最长字符串的数组 范例 对于inputArray=[“aba”、“aa”、“ad”、“vcd”、“aba”],输出应为 所有最长字符串(输入阵列)=[“aba”、“vcd”、“aba”] 我的代码: function allLongestStrings(inputArray) { var longest = inputArr
function allLongestStrings(inputArray) {
var longest = inputArray.reduce(function (a, b) {
return a.length > b.length ? a : b;
});
for(var i = 0; i < inputArray.length; i++) {
if(inputArray[i].length === longest.length) {
var longArray = [];
longArray.push(inputArray[i]);
}
return longArray;
}
}
函数AllLongestString(inputArray){
var longest=inputArray.reduce(函数(a,b){
返回a.length>b.length?a:b;
});
for(变量i=0;i
错误:
输入:输入方式:[“aba”, “aa”, “广告”, “vcd”, “aba”] 输出: [“aba”] 预期输出: [“aba”, “vcd”, “aba”] 输入: 输入方式:[“abc”, “eeee”, “abcd”, “dcd”] 输出: 空的 预期输出: [“eeee”,
“abcd”]进行评论中所述的更改会给我带来:
function allLongestStrings(inputArray) {
var longest = inputArray.reduce(function (a, b) {
return a.length > b.length ? a : b;
});
var longArray = [];
for (var i = 0; i < inputArray.length; i++) {
if (inputArray[i].length === longest.length) {
longArray.push(inputArray[i]);
}
}
return longArray;
}
我得到了您列出的这两种情况的预期输出:
allLongestStrings(inp1)
(3) ["aba", "vcd", "aba"]
allLongestStrings(inp2)
(2) ["eeee", "abcd"]
longArray
应在循环外声明,否则每iteration@AndrewLi谢谢我将它移动到循环中,仍然只有一个输出。尽管如此,第二个错误确实更改为:输入:inputArray:[“abc”、“eeee”、“abcd”、“dcd”]输出:[“eeee”]预期输出:[“eeee”、“abcd”]您还将在for循环体内部返回。它应该移动到函数声明的底部。摘要:declarevar longArray=[]代码>在for语句的之前,以及在for循环的右大括号}
之后的返回longArray
。@StephenP-hmm,我试过了,第一个错误保持不变,但第二个错误现在显示:输入:输入阵列:[“abc”,“eeee”,“abcd”,“dcd”]输出:[]预期输出:[“eeee”,“abcd”]啊!很抱歉,我错误地将其向下移动了一个支架,而不是两个。我复制了你的代码,然后把它贴在我的代码下面进行比较,结果就是这样。顺便说一句,它成功了!非常感谢你的帮助!!!
allLongestStrings(inp1)
(3) ["aba", "vcd", "aba"]
allLongestStrings(inp2)
(2) ["eeee", "abcd"]