【问题标题】:Jquery .split(",") then show every :nth-child(2)Jquery .split(",") 然后显示每个 :nth-child(2)
【发布时间】:2016-11-08 05:32:45
【问题描述】:

如何在 .split() 之后找到数组中的每 3 个项目?

newItems = "1,1,0,1,1,0,1,1,0,1,1,0"

只显示第一个 0:

var test = ("" + newItems).split(",")[2]; 

我正在尝试做这样的事情并显示 0,0,0,0:

var test = ("" + newItems).split(",")[:nth-child(2)];

【问题讨论】:

  • var test = ("" + newItems).split(",")[2]; .... 使用索引2
  • 我试图在整个字符串中显示每 3 个 v.s.只是第一个
  • 前 3 项还是第 3 项?。
  • 我得到 Uncaught SyntaxError: Unexpected token : when I try var test = ("" + newItems).split(",")[:nth-child(3n) ]; (我相信实际上也应该是 2n,因为数组中计数为 0)
  • FIDDLE 就像您正在使用的代码一样。

标签: jquery split


【解决方案1】:

使用Array.prototype.filter()

var newItems = "1,1,0,1,1,0,1,1,0,1,1,0",
    everyThirdItem = newItems.split(",")
                       .filter(function(_, idx) { return ((idx + 1) % 3) === 0 });

console.log(everyThirdItem)

【讨论】:

  • 嘿,安德烈亚斯,为了简单起见,我只使用了 0,但它们并不总是 0,我删掉了 === 0,但似乎不是每 3 次都这样做
  • === 0 与您向其展示您想要获得的索引的人无关,如果该索引可被 3 整除,则意味着每 3 次
  • @Jeff 如果您删除条件“删除每三个项目”,那么它就无法工作......;)。 .filter() 需要一个返回 true(= 保留该项)或 false(= 忽略该项)的函数。 return 部分正是这样做的。如果当前项的值(索引 + 1)可以被 3 整除(idx + 1 可以被3 整除,没有余数(Modulo)),则返回true,否则返回false
  • 谢谢安德烈斯!我刚刚意识到它没有获取零,因为我正在使用的数组以异常值开始,那么它应该是每隔 3 个 ex [Name,1,1,0,1,1,0,1,1,0];
【解决方案2】:

也许这就是你的意思:

var test = [];
for(var i=2; i<("" + newItems).split(",").length; i+= 3) {
    test.push(("" + newItems).split(",")[i]);
}

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多