我一直在试图弄清楚这个函数的最佳代码是什么,但是我尝试过的代码不起作用。
以下是说明。
应该使用姓名和人员列表,并返回所有非朋友姓名的列表“,如果在朋友列表中返回false,则函数使用isFriends irrirate每个对象
var data = [
{name: "Jimmy", friends:["Sara", "Liza"]},
{name: "Bob", friends:[]},
{name: "Liza", friends: ["Jimmy"]},
{name: "Sara", friends: ["Jimmy"]}
];
assert.deepEqual(nonFriends("Jimmy", data), ["Bob"]);
assert.deepEqual(nonFriends("Bob", data), ["Jimmy", "Liza", "Sara"]);
assert.deepEqual(nonFriends("Sara", data), ["Bob","Liza"]);
这是我的isFriends功能代码
isFriend()
:如果是朋友,则应该使用名称和对象并返回true,否则返回“
function isFriend(name, obj) {
if(Array.isArray(obj.friends) && obj.hasOwnProperty("friends")) {
for(var i = 0; i < obj.friends.length; i++) {
if(name === obj.friends[i]) {
return true;
}
}
}
return false;
}
如何创建一个nonFriend函数,如实现isFriend函数所描述的。你能详细解释一下吗?我对其他陈述等没有信心,谢谢你
答案 0 :(得分:0)
nonFirends()方法包括以下事项:
以下代码应该有效。
function nonFriends(name, arr){
var nameList = [];
var result = [];
var current = null;
for(var i=0; i<arr.length; i++){
if(name === arr[i].name){
current = arr[i];
}else{
nameList.push(arr[i].name);
}
}
if(current === null){
return nameList;
}
for(var i=0; i<nameList.length; i++){
if(current.friends.indexOf(nameList[i]) == -1){
result.push(nameList[i]);
}
}
return result;
}