4

私は2つの配列を持っています。それらを1つの多次元配列に結合するにはどうすればよいですか?

最初の配列は次のとおりです。

var arrayA = ['Jhon, kend, 12, 62626262662', 
              'Lisa, Ann, 43, 672536452', 
              'Sophie, Lynn, 23, 636366363'];

私の他の配列には値があります:

var arrayB = ['Jhon', 'Lisa', 'Sophie']; 

この形式で配列を取得するにはどうすればよいですか??

var jarray = [['Jhon', ['Jhon, kend, 12, 62626262662']], 
              ['Lisa', ['Lisa, Ann, 43, 672536452']], 
              ['Sohphie', ['Sophie, Lynn, 23, 636366363']]]
4

4 に答える 4

5
var jarray = [];
for (var i=0; i<arrayA.length && i<arrayB.length; i++)
    jarray[i] = [arrayB[i], [arrayA[i]]];

ただし、これを「多次元配列」とは呼びません。これは通常、同じタイプのアイテムを含む配列を指します。また、配列の2番目の部分を1要素配列にする理由もわかりません。

于 2013-02-11T21:22:12.500 に答える
0

これは、あなたが求めていたものを得るために私がしたことです:

var jarray = [];
for (var i = 0; i < arrayB.length; i++) {
    jarray[i] = [];
    jarray[i].push(arrayB[i]);
    var valuesList = [],
        comparator = new RegExp(arrayB[i]);
    for (var e = 0; e < arrayA.length; e++) {       
        if (comparator.test(arrayA[e])) {
            valuesList.push(arrayA[e]);
       }        
    }
    jarray[i].push(valuesList);
}
于 2013-02-11T22:00:05.217 に答える
0

Underscore.js を使用できますhttp://underscorejs.org/#find リスト内の各値を調べて、真偽テスト (反復子) に合格した最初の値を返します。この関数は、受け入れ可能な要素を見つけるとすぐに戻り、リスト全体をトラバースしません。

var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
=> 2

次に、配列 B の要素で同じことを行い、コードによって結合を行うことができます。

于 2013-02-11T21:19:28.317 に答える