【发布时间】:2017-03-24 17:13:44
【问题描述】:
我的任务是从字符串中按顺序接收唯一元素作为参数。我不明白这个函数 uniqueElements 如何返回 ['A','B','C','B']。
var word = "AAAABBBBCCBB";
var uniqueElements = function(word) {
return [].filter.call(word, (function(elem,index) {
return word[index-1] !== elem
}));
}
uniqueElements(word);
//it should return ['A','B','C','B']
我检查并阅读了以下来源:
MDN Mozilla 和 JS Blog 但没有成功。
【问题讨论】:
-
那是把字符串转换成字符数组。
-
语法“借用”了一个数组方法,并将其应用于字符串。另见call。
-
出现编译错误
-
在 ES6 世界中,这会写成
[...word].filter或Array.from(word).filter更简洁易读。
标签: javascript arrays filter call