按字母数量排序.检查以相同字母开头的单词.检查一个单词是否完全出现在另一个单词中.当两个单词以相同的字母开头时.如果它完全存在.只显示第一个单词而忽略第二个单词字
var arraylist = ["running", "walking", "standing", "writing", "waiting", "sleeping", "reading", "washing", "sitting", "riding", "shopping", "singing", "painting", "watching", "swimming", "pulling", "smoking", "pushing", "drinking", "dancing", "cooking", "crying ", "eating", "smiling","run", "walk", "push", "cook", "cry", "eat"];
使用javascript / jquery期望输出:
我需要删除这些词:跑步,走路,推,做饭,哭,吃.
var arrayList = ["run", "walk", "standing", "writing", "waiting", "sleeping", "reading", "washing", "sitting", "riding", "shopping", "singing", "painting", "watching", "swimming", "pulling", "smoking", "push", "drinking", "dancing", "cook", "cry", "eat", "smiling","run", "walk", "push", "cook", "cry", "eat"];
解决方法:
对于@Grimbode提到的案例
来自OP
Check if a word is completely present in another word
所以笑容并不完全呈现在微笑中
所以这个解决方案可能会有所帮
function filter(arr) {
arr.sort(function(a, b) {
return a.length - b.length;
})
return arr.reduce(function(acc, el) {
if (!acc.some(function(e) {
return el.startsWith(e);
})) {
acc.push(el);
}
return acc;
}, []);
}
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position) {
position = position || 0;
return this.lastIndexOf(searchString, position) === position;
};
}
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position) {
position = position || 0;
return this.lastIndexOf(searchString, position) === position;
};
}
var arraylist = ["running", "walking", "standing", "writing", "waiting", "sleeping", "reading", "washing", "sitting", "riding", "shopping", "singing", "painting", "watching", "swimming", "pulling", "smoking", "pushing", "drinking", "dancing", "cooking", "crying ", "eating", "smiling", "run", "walk", "push", "cook", "cry", "eat"];
function filter(arr) {
arr.sort(function(a, b) {
return a.length - b.length;
})
return arr.reduce(function(acc, el) {
if (!acc.some(function(e) {
return el.startsWith(e);
})) {
acc.push(el);
}
return acc;
}, []);
}
document.getElementById('before').innerHTML = JSON.stringify(arraylist);
document.getElementById('result').innerHTML = JSON.stringify(filter(arraylist));
<div><span>initial array:</span><span id="before"></span>
<div>
<div><span>result array:</span><span id="result"></span>
<div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。