我有一个名为的数组ItemArray
,其元素如下
ItemArray[0]='44@Man'
ItemArray[1]='45@Cotton'
ItemArray[2]='44@Woman'
我想要的新数组应该NewItemArray
如下
NewItemArray[0]='44@Man#Woman'
NewItemArray[1]='45@Cotton'
我有一个名为的数组ItemArray
,其元素如下
ItemArray[0]='44@Man'
ItemArray[1]='45@Cotton'
ItemArray[2]='44@Woman'
我想要的新数组应该NewItemArray
如下
NewItemArray[0]='44@Man#Woman'
NewItemArray[1]='45@Cotton'
var ItemArray = [];
ItemArray[0]='44@Man'
ItemArray[1]='45@Cotton'
ItemArray[2]='44@Woman'
// create intermediate array of objects
var aux = {};
$.each(ItemArray, function(idx, val){
var key = val.split("@");
// e.g key : ['44', 'Man']
if (!aux[key[0]]){
aux[key[0]] = [];
}
aux[key[0]].push(key[1]);
});
console.log(aux);
/* aux looks like this:
{
44 : ['Man', 'Woman'],
45 : ['Cotton']
}
*/
// create final array based on the previous temporary array
var NewItemArray = [];
$.each(aux, function(idx, val){
NewItemArray.push(idx + '@' + val.join("#"));
});
console.log(NewItemArray)
小提琴:http: //jsfiddle.net/T9GNm/
这里有一些提示:
.split
处拆分原始字符串@
@
可以是地图的“关键”Array
字符串作为映射中的值如果你做了所有这些,你最终应该得到一个包含以下内容的对象:
var tmpObj = {
44: ['Man', 'Woman'],
45: ['Cotton']
};
.join
将字符串数组与每个元素之间的分隔符组合起来