Javascript 在这里如何使用ES6代码而不是for循环?

Javascript 在这里如何使用ES6代码而不是for循环?,javascript,for-loop,ecmascript-6,Javascript,For Loop,Ecmascript 6,我正在寻找更好的方法来处理数组的搜索。这就是我现在拥有的 function search (arr, word) { word = word.toUpperCase(); var res = []; for(var i = 0; i < arr.length; i++) { if(arr[i].slice(0, word.length) == word) { res.push(arr[i]); } } return res; } var m

我正在寻找更好的方法来处理数组的搜索。这就是我现在拥有的

function search (arr, word) {
  word = word.toUpperCase();
  var res = [];
  for(var i = 0; i < arr.length; i++) {
    if(arr[i].slice(0, word.length) == word) {
      res.push(arr[i]);
    }
  }
  return res;
}

var myArr = ["england", "China", "France", "Eng", "Ch", "Australia"];

search(myArr, "e");
函数搜索(arr,word){
word=word.toUpperCase();
var-res=[];
对于(变量i=0;i

它可以工作,但我想用ES6代码代替for循环,因为我正在尝试学习它。这里我如何使用ES6?

您可以使用一些内置方法,例如和:

函数搜索(arr,word){
返回arr.filter(element=>element.toUpperCase().startsWith(word.toUpperCase());
}
const myArr=[“英国”、“中国”、“法国”、“英国”、“中国”、“澳大利亚”];

console.log(搜索(myArr,“e”)您可以使用一些内置方法,例如和:

函数搜索(arr,word){
返回arr.filter(element=>element.toUpperCase().startsWith(word.toUpperCase());
}
const myArr=[“英国”、“中国”、“法国”、“英国”、“中国”、“澳大利亚”];

console.log(搜索(myArr,“e”)
es6
是规范,不是函数/方法调用。用
es6
替换它是什么意思?不相关,但当您将单词转换为大写,而不是数组中的单词时,看起来有一个bug。例如,它不会为字母“e”返回“england”。@Polina您当前的代码只返回
Eng
而不是
england
什么是“更好”?虽然不是好看的解决方案,
for
可能是最有效的解决方案。@Weedoze-Hmm。。。我认为这是我的repo-
es6
是一个规范,而不是一个函数/方法调用。用
es6
替换它是什么意思?不相关,但当您将单词转换为大写,而不是数组中的单词时,看起来有一个bug。例如,它不会为字母“e”返回“england”。@Polina您当前的代码只返回
Eng
而不是
england
什么是“更好”?虽然不是好看的解决方案,
for
可能是最有效的解决方案。@Weedoze-Hmm。。。我觉得这是我的回购协议——谢谢,这正是我想要的!比我的代码短得多,好得多,非常感谢!感谢您对for循环的解释和评论!谢谢,这正是我想要的!比我的代码短得多,好得多,非常感谢!感谢您对for循环的解释和评论!