我正在尝试让我的forEach循环遍历var水果并将发现的所有字符串推入arr2。
这是我的代码:
var fruit = [1,2,3, "apple", "banana", "grape"]
function isString(fruit) {
var arr2 = []
fruit.forEach(function(element) {
if(element == "string"){
arr2.push(element)
}
return arr2
})
}
//期望的输出是arr2 =“ apple”,“ banana”,“ grape”
我不确定我在做什么错。感谢您的任何建议。
答案 0 :(得分:1)
有效的Javascript代码:
"Russian_Russia.1251"
答案 1 :(得分:0)
替换:
element == "string"
使用:
typeof element == "string"
因为您基本上是在比较实际数据而不是类型。
答案 2 :(得分:0)
两个问题:
您正在将返回值放入循环中。因此,return
甚至在循环完成之前。这意味着第一个不是字符串的元素,它返回并得到一个空数组。
element == "string"
不是检查类型的正确方法。您可以使用typeof element === "string"
还有第三个可能的问题,那就是您实际上必须调用该函数。查找以下工作代码:
var fruit = [1, 2, 3, "apple", "banana", "grape"]
function isString(fruit) {
var arr2 = []
fruit.forEach(function(element) {
if (typeof element === "string") {
arr2.push(element)
}
})
return arr2;
}
isString(fruit);
答案 3 :(得分:0)
我在我的代码之一中使用了此foreach序列...可能会帮助您。
string []正文;
string first = Body.First(); //获取“ Body”数组的第一个索引的内容
if (first != "") // if first index of "Body" array contain data's
{
string Content = "";
foreach (string line in Content) // do something
{
Content = Content + line + "\n";
}
}
答案 4 :(得分:0)
您应该使用typeof
并在函数arr2
的末尾返回isString
var fruit = [1,2,3, "apple", "banana", "grape"]
function isString(fruit) {
var arr2 = [];
fruit.forEach(function(element) {
if(typeof element === "string"){
arr2.push(element);
}
})
return arr2;
}
console.log(isString(fruit))
通过您可以使用filter
函数使其更短的方式
var fruit = [1,2,3, "apple", "banana", "grape"];
var fruitString = fruit.filter(function(element) {
return typeof element === "string";
});
console.log(fruitString);