Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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 实现函数并返回新列表js_Javascript - Fatal编程技术网

Javascript 实现函数并返回新列表js

Javascript 实现函数并返回新列表js,javascript,Javascript,我只学了三个星期的javascript,在一项任务上需要帮助 我想实现一个名为test的函数,它将列表和函数作为参数。测试函数应该为列表中的每个值调用一次作为参数提交的函数,将有问题的列表值作为参数,并将返回一个仅包含列表值的新列表​​其参数函数返回true。我想在不使用filter()方法的情况下实现这一点 我怎么能在这里思考?我下面的代码是一个好的开始吗?我很感激能在这里得到的帮助,这样我才能理解这一点 let x = ["1", "2", "3"]; function test(x, s

我只学了三个星期的javascript,在一项任务上需要帮助

我想实现一个名为test的函数,它将列表和函数作为参数。测试函数应该为列表中的每个值调用一次作为参数提交的函数,将有问题的列表值作为参数,并将返回一个仅包含列表值的新列表​​其参数函数返回true。我想在不使用filter()方法的情况下实现这一点

我怎么能在这里思考?我下面的代码是一个好的开始吗?我很感激能在这里得到的帮助,这样我才能理解这一点

let x = ["1", "2", "3"];

function test(x, s) {
  for (let i = 0; i < x.length; i++) {

  }
  return 
}
设x=[“1”、“2”、“3”];
功能测试(x,s){
for(设i=0;i
您可以在函数开始时创建一个空数组,在返回数组之前读取数组时填充该数组

由于您不想使用
过滤器
,我将使用
forEach
提供一个解决方案,另一个使用basic
for
循环

设x=[“1”、“2”、“3”];
函数testFor(列表,testFct){
常量结果数组=[];
for(设i=0;i{
if(testFct(元素)){
结果推(元素);
}
})
返回结果数组;
}
log(testFor(x,(el)=>el%2));

log(testForeach(x,(el)=>el%2))您提供的代码是一个良好的开端,它提供了一种遍历列表中所有元素的方法,这是一个良好的起点。不过,我建议您更改参数的名称,以便更好地表示它们所持有的数据

下一步是为列表中的每个元素调用作为参数(
f
)传入的函数,并检查它是否返回true。如果有,则可以将此元素添加到新列表(其中包含要返回的值列表)

循环完成后,可以返回此新列表。请看下面的一个示例,了解如何实现此功能:

设x=[1,2,3,4];
功能测试(lst,f){
让新列表=[];
for(设i=0;i控制台日志(结果)如果你想用一种简单的方式来做,这是-->

设x=[“1”、“2”、“3”];
函数myFunction(元素){
如果(元素==“1”| |元素==“2”){
返回真值
}
返回错误
}
功能测试(列表,myFunction){
让newList=[];
for(设i=0;i
使用
过滤器还有另一种更简单的方法


出于好奇,您为什么不想使用
过滤器
?向我们展示您期望的输出“map”呢?还是“forEach”?或者目标是在没有任何数组函数的情况下完成它?等等,这是一个任务或某种测试,你让我们在你的位置解决?是的,他的目标是在没有数组函数的情况下完成。最好合并两个答案。
let x = ["1", "2", "3"];

function myFunction(element){
  if (element == "1" || element == "2"){
    return true 
  }
  return false
}

function test(list, myFunction) {
  let newList = [];
  for (let i = 0; i < list.length; i++) {
    let element = list[i];
    if (myFunction(element)){
      newList.push(element);
    }
  }
  return newList
}

test(x, myFunction)
let x = ["1", "2", "3"];

function myFunction(element){
  if (element == "1" || element == "2"){
    return true 
  }
  return false
}

function test(list, myFunction) {
  return list.filter(myFunction)
}

test(x, myFunction)