【问题标题】:Need to split string based on given numeric value in jquery需要根据jquery中给定的数值拆分字符串
【发布时间】:2015-08-27 10:53:07
【问题描述】:

我有一个这样的字符串,Fy 2002.car.state

我需要根据值进行拆分,如果值是0,我需要像“Fy 2002”,“car”,“state”这样单独拆分。如果值是1,我需要像这样拆分"Fy 2002.car","state".

如何在不使用 for 循环的情况下实现这一点?谢谢。

【问题讨论】:

  • index = 2 有可能吗?如果是这样,结果应该是什么样的?
  • 很难理解您的期望,因为您的需求中没有渐进式流程
  • 你只有空格和点来分隔吗?
  • 什么“索引”?这里的数据结构是什么?
  • 我有一个字符串“Fy 2002.car.state”,如果我用 '.' 分割它它将像 ["Fy 2002","car","state"] 一样被拆分。如果我的数组索引为 0 表示它显示“Fy 2002”,如果 1 表示,我需要字符串“Fy 2002.car”,因为 2 将类似于“Fy 2002.car.state”,依此类推....

标签: javascript jquery loops split


【解决方案1】:

首先使用 split 创建数组。
然后使用拼接切断阵列。
最后使用 join 将切好的项目加入数组中。

function mysplit(str, index){
  var a = str.split('.')
  if(index){
    a[0] += '.' + a.splice(1, index).join('.')
  }
  return a
}

其他可能性是使用 reduce 函数。

function mysplit2(str, index){
  var a = str.split('.')
  if(index){
    a = a.reduce(function(p, c, i) {
      p.push(c)
      return (i <= index ? [p.join('.')] : p)
    },[])
  }
  return a
}

【讨论】:

    【解决方案2】:

    我对问题的解释

    • 拆分字符串
    • . 连接前n 个元素

    var str = "Fy 2002.car.state",
        a = str.split('.');
    
    function split(a, index) {
        if (index) {
            a[0] +=  '.' + a.splice(1, index).join('.');
        }			
        document.write('<pre>' + index + ' ' + JSON.stringify(a, 0, 4) + '</pre>');
    }
    
    split(a.slice(0), 0);
    split(a.slice(0), 1);
    split(a.slice(0), 2);

    【讨论】:

    • 是的。我到底在期待什么。逻辑对我有用。
    【解决方案3】:

    你可以用split做到这一点

    var str="Fy 2002.car.state";
    var result= str.split('.');
    

    Fiddle Here

    【讨论】:

    • @ozil 让 OP 决定你不觉得吗?
    • 我觉得给出完整的答案比较合适
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多