2016-11-09 28 views
-1

一定的模式後,我已經得到的變量,如酒店標籤去掉一切(8)和瑜伽標籤(4)如何的jQuery或JavaScript

是否有可能得到的值作爲酒店標籤瑜伽標籤

var myarray = ["hotel tag (8)", "yoga tag (4)"]; 
var newarray = []; 

$(document).ready(function() { 
    for (var i = 0; i < myarray.length; i++) { 
     var tag_name = myarray[i].split('(').pop() 
     newarray.push(tag_name); 
    } 
    console.log(newarray); 
}); 

我曾嘗試使用splitpop,但我得到不正確的結果。

http://jsfiddle.net/cod7ceho/303/

+1

變量來自哪裏?你不能在源頭修改它們的值嗎? –

回答

0

你可以使用正則表達式和搜索第一個非開放bracked部分。

var myarray = ["hotel tag (8)", "yoga tag (4)"]; 
 
myarray.forEach(function (a) { 
 
    console.log(a.match(/^[^(]+/)[0].trim()); 
 
});

或者使用正向前查找與之相匹配的

var myarray = ["hotel tag (8)", "yoga tag (4)"]; 
 
myarray.forEach(function (a) { 
 
    console.log(a.match(/^.*(?=\s\()/)[0]); 
 
});

或者使用與分裂

積極前瞻

var myarray = ["hotel tag (8)", "yoga tag (4)"]; 
 
myarray.forEach(function (a) { 
 
    console.log(a.split(/(?=\s\()/)[0]); 
 
});

1

你接近。

其實Array.prototype.pop()從數組中刪除最後一個元素並返回該元素。所以,你在你的tag_name內部存儲這最後一個元素,並將其添加到newarray

var myarray = ["hotel tag (8)", "yoga tag (4)"]; 
 
var newarray = []; 
 

 
for (var i = 0; i < myarray.length; i++) { 
 
    var tag_name = myarray[i].split('(')[0].trim(); 
 
    newarray.push(tag_name); 
 
} 
 
console.log(newarray);

OR

如果你想保持相同的邏輯。您可以使用Array.prototype.shift(),它將從數組中移除第一個元素並返回該元素。

var myarray = ["hotel tag (8)", "yoga tag (4)"]; 
 
var newarray = []; 
 

 
for (var i = 0; i < myarray.length; i++) { 
 
    var tag_name = myarray[i].split('(').shift().trim(); 
 
    newarray.push(tag_name); 
 
} 
 
console.log(newarray);

注:我添加的方法trim()除去開頭和結尾的空白

0

有亞去:

var data = ["hotel tag (8)", "yoga tag (4)"]; 
 

 
var result = data.map(function(str){ 
 
    return str.split('(')[0].trim(); 
 
}); 
 

 
console.log(result);

它沒有比這更簡單。

對於每個元素:在(.split('(')

  1. 分裂它,
  2. 得到的第一部分([0]),
  3. 刪除尾部空格與.trim()