我有这个事件...
<textarea id="chat"> </textarea>
<button type="button" onclick="play_song();">talk</button>
触发以下
函数
: var input = function() {
var chat = document.getElementById("chat").value.split(" ");
return chat && console.log(chat);
}
然后还有这个函数
:
function setIntersection(a, b) {
var result = [];
for (var i = 0; i < a.length; i++) {
if (b.indexOf(a[i]) !== -1 && result.indexOf(a[i]) === -1) {
result.push(a[i]);
}
}
return result;
}
一个 原型函数
:
Song.prototype.lyricsIntersect = function(input) {
var bestSong = null;
var bestCount = -Infinity;
for (var i in songs) {
var currentCount = setIntersection(songs[i].lyrics, input).length;
if (currentCount > bestCount) {
bestSong = songs[i];
bestCount = currentCount;
}
}
return bestSong && bestSong.name;
}
代码到这里结束:
function play_song() {
var id = Song.prototype.lyricsIntersect(input);
var element = document.getElementById(id);
element.play();
}
但是console.log
返回: Uncaught TypeError: b.indexOf is not a function
然而,如果我测试var input = ["one", "two"];
,则我会在依赖于input
的代码中完成交集。
我错过了什么?
input
еҮҪж•°дёҺй—®йўҳжңүд»Җд№Ҳе…ізі»пјҹзӣёеҸҚпјҢжӮЁеә”иҜҘеҸ‘еёғеҰӮдҪ•и°ғз”ЁsetIntersection
зҡ„еҶ…е®№гҖӮ - Oriolreturn chat && console.log(chat);
返回的是未定义,因为 console.log 的返回值是未定义。 - RobG