アプリ版:「スタンプのみでお礼する」機能のリリースについて

メソッドが返す配列オブジェクト?を分解して、一発で配列の各要素に1個づつ値を入れるやり方を教えてください。
具体的には次のソースコードで配列「現敵パーティー」が['モンク', 'モンク', '白魔道士', '黒魔道士']になるようにしたいのですが、[[モンク,モンク,白魔道士,黒魔道士], undefined, undefined, undefined]になってしまいます。

var 敵パーティー = [
['ナイト', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'モンク', '白魔道士', '青魔道士'],
['モンク', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'ナイト', 'モンク', '白魔道士']
]
var 現敵パーティー = [];
現敵パーティー = [敵パーティー.splice(2, 1)]

A 回答 (5件)

>[0]を付けることによって、メソッドが返す配列オブジェクト?を分解できるのですね。



分解はslice()メソッドでしてます、[0]を付けることによって2次元配列を1次元配列に次元数をダウンしてます。
    • good
    • 0
この回答へのお礼

次元数をダウンすることによって1個の要素に1個ずつ入れることができるのですね。

お礼日時:2018/11/10 23:50

>No.4 回答者: amanojaku6



左辺と右辺の配列の添え字の違いに注意して下さい。
下記も2次元配列を1次元配列に次元数をダウンしてます。

>var 現敵パーティー = 敵パーティー[2];
    • good
    • 0
この回答へのお礼

承知しました

お礼日時:2018/11/10 23:58

>やりたいのは「現敵パーティー」の1個の要素に1個のジョブを割り当てたいのです。


>var 現敵パーティー = 敵パーティー.slice(2, 3);だと、現敵パーティー[0]に4個のジョブが入ってしまい、現敵パーティー[1~3]がundefinedになってしまうのです。

申し訳ございませんでしたm(_ _)m

var 敵パーティー = [
['ナイト', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'モンク', '白魔道士', '青魔道士'],
['モンク', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'ナイト', 'モンク', '白魔道士']
]
var 現敵パーティー = 敵パーティー.slice(2, 3)[0];
for( i = 0; i<現敵パーティー.length; i++ ){
document.write("("+i+") : "+
現敵パーティー[i]+'<br>');

【結果】

>(0) : モンク
>(1) : モンク
>(2) : 白魔道士
>(3) : 黒魔道士



やはり、下記の方がスマートです。

var 現敵パーティー = 敵パーティー[2];
    • good
    • 0
この回答へのお礼

できました^^
[0]を付けることによって、メソッドが返す配列オブジェクト?を分解できるのですね。

お礼日時:2018/11/10 23:23

>spliceメソッドで敵パーティーから引っこ抜いてきたパーティーを現敵パーティーの1個1個の要素に入れたいのです。



メソッドが間違ってるようです、sliceメソッドを お使い下さい。

sliceメソッド(配列)
https://www.ajaxtower.jp/js/array_class/index8.h …

var 敵パーティー = [
['ナイト', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'モンク', '白魔道士', '青魔道士'],
['モンク', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'ナイト', 'モンク', '白魔道士']
]
var 現敵パーティー = 敵パーティー.slice(2, 3);
document.write(現敵パーティー+'<br>');
    • good
    • 0
この回答へのお礼

何度もスミマセン
やりたいのは「現敵パーティー」の1個の要素に1個のジョブを割り当てたいのです。
var 現敵パーティー = 敵パーティー.slice(2, 3);だと、現敵パーティー[0]に4個のジョブが入ってしまい、現敵パーティー[1~3]がundefinedになってしまうのです。

お礼日時:2018/11/10 20:23

var 敵パーティー = [


['ナイト', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'モンク', '白魔道士', '青魔道士'],
['モンク', 'モンク', '白魔道士', '黒魔道士'],
['ナイト', 'ナイト', 'モンク', '白魔道士']
]
var 現敵パーティー = 敵パーティー[2];
document.write(現敵パーティー+'<br>');
    • good
    • 0
この回答へのお礼

spliceメソッドで敵パーティーから引っこ抜いてきたパーティーを現敵パーティーの1個1個の要素に入れたいのです。

お礼日時:2018/11/10 19:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!