为什么调用sort函数时提示‘不是函数’?代码问题排查
问题原因及修复
- 报错核心:
sort()是JavaScript数组的专属方法,而prompt()函数返回的是字符串类型的数据,字符串没有sort()方法,所以调用时会提示“sort不是函数”。 - 你的代码还有两个额外问题:
- 每次循环都直接把
fruits赋值为新的输入字符串,没有把多次输入的水果存入数组,永远只是单个字符串。 - 循环条件写的是
i < 6,但需求是收集top5水果,应该改成i < 5;另外变量i没声明,会变成全局变量,建议用let声明。
- 每次循环都直接把
修复后的代码示例:
// 先初始化fruits为数组 let fruits = []; // 用let声明循环变量i for (let i = 0; i < 5; i++){ // 把每次输入的水果push进数组 let input = prompt(`请输入第${i+1}种喜欢的水果:`); fruits.push(input); } // 对数组排序 fruits.sort(); // 打印排序后的数组 console.log(fruits);
内容的提问来源于stack exchange,提问作者Martha
相关产品推荐
相关产品推荐

