Javascript 正确使用array.map

Javascript 正确使用array.map,javascript,arrays,Javascript,Arrays,我不确定为什么我的array.map函数返回undefined,但是我的for循环返回结果。当输入控制台日志映射时,它显示: 汤姆 迪克 哈利 当控制台记录循环时,它会显示 [“汤姆”、“迪克”、“哈利”] 不确定这是否是显示未定义的问题 var friends = ["Tom", "Dick", "Harry"]; var secondLevelFriends = ["Anne", "Harry", "Quinton"]; var allUsers = ["Tom", "Dick", "Har

我不确定为什么我的array.map函数返回undefined,但是我的for循环返回结果。当输入控制台日志映射时,它显示:

汤姆 迪克 哈利

当控制台记录循环时,它会显示

[“汤姆”、“迪克”、“哈利”]

不确定这是否是显示未定义的问题

var friends = ["Tom", "Dick", "Harry"];
var secondLevelFriends = ["Anne", "Harry", "Quinton"];
var allUsers = ["Tom", "Dick", "Harry", "Anne", "Quinton", "Katie", "Mary"];

function findPotentialFriends(existingFriends) {
  return function(x) {
    // existingFriends.map(function(elem) {
    //   if(elem === x) return false;
    //   else return true;
    // })
    for(var i = 0; i < existingFriends.length; i++) {
      if(existingFriends[i] === x) return false;
      else return true;
    }
  }
}

var isNotAFriend = findPotentialFriends( friends );
isNotAFriend(allUsers[0]); // false
var-friends=[“汤姆”、“迪克”、“哈利”];
var secondLevelFriends=[“安妮”、“哈里”、“昆顿”];
var allUsers=[“汤姆”、“迪克”、“哈里”、“安妮”、“昆顿”、“凯蒂”、“玛丽”];
功能查找潜在朋友(现有朋友){
返回函数(x){
//existingFriends.map(函数(elem){
//if(elem==x)返回false;
//否则返回true;
// })
for(var i=0;i
只需在
map()
函数中添加
return
。它是return函数中的一个新函数。因此也可以使用return函数。
var-friends=[“汤姆”、“迪克”、“哈利”];
var secondLevelFriends=[“安妮”、“哈里”、“昆顿”];
var allUsers=[“汤姆”、“迪克”、“哈里”、“安妮”、“昆顿”、“凯蒂”、“玛丽”];
功能查找潜在朋友(现有朋友){
返回函数(x){
返回现有的Friends.map(函数(elem){
if(elem==x)返回false;
否则返回true;
})
//for(var i=0;iconsole.log(isNotAFriend(alluser[0]);//false
首先,for循环存在一些逻辑问题。应该这样写:

var foundFriend = false;
for(var i = 0; i < existingFriends.length; i++) {
  if (existingFriends[i] === x)
  {
    foundFriend = true;
    break;
  }
}
return !foundFriend;

代码的问题是回调中的
return
语句只返回到
map()
,而不返回到原始调用方
map()
将所有这些返回值收集到一个数组中并返回该值,但您永远不会对现有的friends.map()的结果执行任何操作

Javascript有一个内置函数来搜索数组中的匹配元素。如果未找到匹配项,则返回
-1

所以你可以简单地写:

var-friends=[“汤姆”、“迪克”、“哈利”];
var secondLevelFriends=[“安妮”、“哈里”、“昆顿”];
var allUsers=[“汤姆”、“迪克”、“哈里”、“安妮”、“昆顿”、“凯蒂”、“玛丽”];
功能查找潜在朋友(现有朋友){
返回函数(x){
返回现有的好友。indexOf(x)==-1;
}
}
var isNotAFriend=findPotentialFriends(朋友);

console.log(isNotAFriend(alluser[0]);//false
我想他真正想要的是
数组。some()
。是的。谢谢,我去换一下。