微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 删除项目表格数组逻辑 – 现在时态和现在连续时态

按字母数量排序.检查以相同字母开头的单词.检查一个单词是否完全出现在另一个单词中.当两个单词以相同的字母开头时.如果它完全存在.只显示一个单词而忽略第二个单词字

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;
  }, []);
}

注意:从mdn开始,旧浏览器的polyfill

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 举报,一经查实,本站将立刻删除。

相关推荐