如何在JavaScript中组合以相同文本开头的数组元素?

如何在JavaScript中组合以相同文本开头的数组元素?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个名为ItemArray的数组,其元素如下 ItemArray[0]='44@Man' ItemArray[1]='45@Cotton' ItemArray[2]='44@Woman' 我想要的新数组应该是NewItemArray,如下所示 以下是一些提示: 您需要创建从数字到关联字符串的中间映射 JS对象是非常好的映射 使用.split在@符号处拆分原始字符串 @前面的数字可以是地图的键 使用字符串数组作为映射中的值 如果您完成了所有这些操作,您应该得到一个包含以下内容的对象: var

我有一个名为ItemArray的数组,其元素如下

ItemArray[0]='44@Man'
ItemArray[1]='45@Cotton'
ItemArray[2]='44@Woman'
我想要的新数组应该是NewItemArray,如下所示

以下是一些提示:

您需要创建从数字到关联字符串的中间映射 JS对象是非常好的映射 使用.split在@符号处拆分原始字符串 @前面的数字可以是地图的键 使用字符串数组作为映射中的值 如果您完成了所有这些操作,您应该得到一个包含以下内容的对象:

var tmpObj = {
     44: ['Man', 'Woman'],
     45: ['Cotton']
 };
您需要在上面迭代以创建新数组 使用.join组合字符串数组,每个元素之间使用分隔符
Fiddle:

展示您的尝试,我们不是免费的代码编写服务。@Archer这是您编写答案的方式,可以提供信息和教育,而不必泄露代码。
var tmpObj = {
     44: ['Man', 'Woman'],
     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)