我想知道如何通过拆分值将数组转换为对象?
var obj = {
id: '',
val: ''
}
我的意思是-如果我有一个像
["abc12", "abc1", "def12", "abc454"]
我怎么能关闭前三个值-所以最终像一个对象一样:
{id: 'abc', val: 12}, {id: 'abc', val: 1} ...
最佳答案
一种解决方案是使用函数将数组(如herby所述)映射,该函数将数组的元素转换为所需形式的对象。
在这种情况下,id
用第一个数字前面的所有字符表示,而val
表示字符串后面的数字:
source.map(function(x) {
return {
id: x.replace(/(^.*?)\d+$/,'$1'),
val: parseInt(x.replace(/^.*?(\d+)$/,'$1'),10)
};
});
Here's a working demo
附:您可能要小心并检查
map
原型链中是否存在Array
方法,因为较旧的浏览器可能未实现此方法。以下链接说明了如何解决此浏览器不兼容的问题:http://www.tutorialspoint.com/javascript/array_map.htm。关于javascript - 将数组值拆分为对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10860629/