2013-08-20 23 views
0

我有一個具有某些值的對象。我想刪除部分值,同時將剩餘值添加到新變量中。這是我到目前爲止有:在數組中使用拆分

var data = { 
    "selectedProducts": { 
     "selectedSubscriptionIds": "320151(Products),320145(Products)" 
    } 
}; 
var SelectedSubscriptionIds = data.selectedProducts.selectedSubscriptionIds; 
var StrippedSubscriptionIds = SelectedSubscriptionIds.split("(Products)")[0]; 

console.log(SelectedSubscriptionIds); //320151(Products),320145(Products) 
console.log(StrippedSubscriptionIds); //Returns "320151" only 

變量StrippedSubscriptionIds只返回第一剝離值。如何讓循環通過所有的項目剝奪他們這樣只有數字左 - 像320151,320145 ...

+0

你有'0'索引在聲明返回數組的第一個元素,刪除和t將正常工作。 –

回答

2
SelectedSubscriptionIds.replace(/\(Products\)/g, "").split(",") 
+0

這真的是正確的答案:) –

+0

@fguillen很整潔!奇蹟般有效。謝謝! – Meek

0
foreach id in StrippedSubscriptionIds 

Console.log(id); 

Next 
0

嘗試

var StrippedSubscriptionIds = SelectedSubscriptionIds.split("(Products),"); 
StrippedSubscriptionIds[-1] = StrippedSubscriptionIds[-1].substr(0, StrippedSubscriptionIds[-1].length - 10); 

,你有一個數組。

最後的代碼行消除了尾隨的(Product)字符串。

替代地,可使用:

var temp = SelectedSubscriptionIds.replace(/\(Products\)/g, ""); 
var StrippedSubscriptionIds = temp.split(","); 
1

分割()函數輸出的項目的陣列。相反,通過選擇第一項的「[0]」,轉讓整個數組變量和環比的是,在格式:

for (var count = 0; count < maxCount; count++) { 
    // Action to be repeated here 
} 

你就會有一個問題是你的源字符串格式「ID(類型),ID(型)」。只需拆分「(Type)」就會在項目中留下逗號,所以剝離的項目看起來像「320151」和「,320145」。確保您包含逗號(並確保您的源字符串最後也帶有逗號,否則最後一項不匹配拆分條件,並且仍然會顯示「Id(Type)」。)

因此,您的代碼將顯示像:

var data = { 
    "selectedProducts": { 
     "selectedSubscriptionIds": "320151(Products),320145(Products)," 
    } 
}; 
var SelectedSubscriptionIds = data.selectedProducts.selectedSubscriptionIds; 
console.log(SelectedSubscriptionIds); //320151(Products),320145(Products), 

var subscriptionIdArray = SelectedSubscriptionIds.split("(Products),"); 

for (var i = 0, i < subscriptionIdArray.length; i++) { 
    var subscriptionId = subscriptionIdArray[i]; 
    console.log(subscriptionId); // 320151, then 320145 etc 
} 

我不知道爲什麼你需要指定一個subscriptionId爲「ID(類型)」時,它已經是「selectedProducts」的範疇內。如果這純粹是一個分裂的緣故,那麼你可以離開。它出來,只是分裂在「,」

var data = { 
    "selectedProducts": { 
     "selectedSubscriptionIds": "320151,320145" 
    } 
}; 
var SelectedSubscriptionIds = data.selectedProducts.selectedSubscriptionIds; 
console.log(SelectedSubscriptionIds); //320151,320145 

var subscriptionIdArray = SelectedSubscriptionIds.split(","); 

for (var i = 0, i < subscriptionIdArray.length; i++) { 
    var subscriptionId = subscriptionIdArray[i]; 
    console.log(subscriptionId); // 320151, then 320145 etc 
}