我有一個字符串是這樣的:串行化的數據轉換爲陣列或對象
(redMultiplier=0, greenMultiplier=0, blueMultiplier=0, alphaMultiplier=1, redOffset=0, greenOffset=102, blueOffset=51, alphaOffset=0)
我需要將此字符串轉換爲陣列(或對象)。而且我也有很多這樣的字符串轉換爲數組。有沒有什麼辦法可以像這樣自動將字符串轉換爲javascript數組?
我有一個字符串是這樣的:串行化的數據轉換爲陣列或對象
(redMultiplier=0, greenMultiplier=0, blueMultiplier=0, alphaMultiplier=1, redOffset=0, greenOffset=102, blueOffset=51, alphaOffset=0)
我需要將此字符串轉換爲陣列(或對象)。而且我也有很多這樣的字符串轉換爲數組。有沒有什麼辦法可以像這樣自動將字符串轉換爲javascript數組?
此功能,當你發送一個字符串,將返回一個對象作爲它的參數:
function convert(str){
str = str.replace(/\(|\)/g,'');
var arr = str.split(',');
var obj = {};
for (var i = 0; i < arr.length; i++) {
var singleArr = arr[i].trim().split('=');
var name = singleArr[0];
var value = singleArr[1]-0;
if (obj[name] == undefined) {
obj[name] = value;
}
}
return obj;
}
obj的喜歡對象{redMultiplier:0,greenMultiplier:0,blueMultiplier:0,alphaMultiplier:1}
下面是如何轉換成array
var str = "(redMultiplier=0, greenMultiplier=0, blueMultiplier=0, alphaMultiplier=1, redOffset=0, greenOffset=102, blueOffset=51, alphaOffset=0)".replace(/[()]/g, '');
console.log(str.split(','));
var newArr = str.split(',');
var finalArr = [];
newArr.map((elem) => {
finalArr.push(elem.replace('=', ':'));
});
console.log(finalArr);
您可以使用正則表達式。
var str = '(redMultiplier=0, greenMultiplier=0, blueMultiplier=0, alphaMultiplier=1, redOffset=0, greenOffset=102, blueOffset=51, alphaOffset=0)'
var obj = {};
str.replace(/(\w+)=(\d+)/g, function (match, $1, $2){
obj[$1] = parseInt($2);
});
console.log(obj);
你能顯示預期的輸出嗎?陣列看起來像什麼? –
輸出可以是這樣的對象:'{redMultiplier:0,greenMultiplier:0 ...};',因爲如果我沒有錯,命名的數組索引在js中不起作用。 – wmarquardt