SyntaxError:意外的令牌[,用于var names []数组

时间:2016-12-15 12:34:00

标签: javascript

我在使用输入数组时遇到问题,尝试在CodeWars上进行Javascript质询。

这是指令:实现一个函数like :: [String] - > String,必须包含输入数组,包含喜欢项目的人的姓名。它必须返回显示文本,如示例所示:

likes [] // must be "no one likes this"
likes ["Peter"] // must be "Peter likes this"
likes ["Jacob", "Alex"] // must be "Jacob and Alex like this"
likes ["Max", "John", "Mark"] // must be "Max, John and Mark like this"
likes ["Alex", "Jacob", "Mark", "Max"] // must be "Alex, Jacob and 2 others like this"

Basicliy就像facebook一样系统。有人可以解释一下我做错了什么吗?这是我的试用代码

function likes (names) {
    var names[7];
    if ( names.length=0) {
        return "nobody likes this"
    } else if (names.length=1) {
        return names[0]+"likes this";
    } else if (names.length=2) {
        return names[0]+names[1]"like this"
    } else if (names.length=3) {
        return names[0]+''+names [1]+''+names[2]+''+ " likes this"
    } else (names.length >3) {
        return  names[0]+''+names [1]+''+ names.length-1 + "likes this"
    }
}

2 个答案:

答案 0 :(得分:0)

var names是声明名为names的变量的语法。

names[7]是读取names的值然后访问名为7的结果对象的属性的语法。

您无法同时创建变量并访问其值的属性...尚未分配变量的值。

答案 1 :(得分:0)

尝试使用此代码代替您的代码,简单概念

var likes=[];

//call this like function with name as parameter, while click the like button
function like(name)
{
 likes.push(name);
}

 function viewlikes(){// here you need write the condition and call where you want display the details         
   if(likes.length==0)
     {
     return " nobody likes this"
     }

 if(likes.length==1)
     {
     return likes[0] + " like this" 
     }

 if(likes.length==2)
     {
     return likes[0] + "," + likes[1] + " like this"    
     }
 if(likes.length==3)
     {
     return likes[0] + "," + likes[1] + " and " + likes[2] + " like this"    
     }
     return likes[0] + "," + likes[1] + " and " + likes.length-2 " others like this"
    }