web-dev-qa-db-ja.com

vueJでforEachを使用する方法は?

API呼び出しから次のような応答がありますが、

response

ここで、配列内で配列全体を繰り返す必要があります。 VueJSでそれを行うにはどうすればよいですか?

ForEachを使用して検索しました。key| valueペアのようなforEachの使用法は見つかりませんでした。

ForEachまたはelse(VueJS)のいずれかを使用して、その配列から値を取得する方法について誰でも私を助けることができますか?

ありがとうございます。それでは、お元気で、

14
Jaccs

VueJSでは、以下のようにforEachを使用できます。

let list=[];
$.each(response.data.message, function(key, value) {
     list.Push(key);
   });

したがって、すべての配列をlistに含めることができます。 forループを使用して値またはキーを取得します

14
rahul

.map()を次のように使用することもできます。

var list=[];

response.data.message.map(function(value, key) {
     list.Push(value);
   });
18

これは、forEachの使用例です。

let arr = [];

this.myArray.forEach((value, index) => {
    arr.Push(value);
    console.log(value);
    console.log(index);
});

この場合、「myArray」はデータの配列です。

filterを使用して配列をループすることもできますが、newを取得したい場合はこれを使用する必要があります配列のフィルターされた要素を含むlist

このようなもの:

const newArray = this.myArray.filter((value, index) => {
    console.log(value);
    console.log(index);
    if (value > 5) return true;
});

と同じように書くことができます:

const newArray = this.myArray.filter((value, index) => value > 5);

FilterとforEachはどちらもJavaScriptメソッドであり、VueJsで問題なく動作します。また、これを見てみると面白いかもしれません:

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

7
Carolyne Stopa

ネイティブjavascript関数を使用できます

var obj = {a:1,b:2};

Object.keys(obj).forEach(function(key){
    console.log(key, obj[el])
})

またはforeachオブジェクトプロトタイプを作成しますが、通常は他のフレームワークで問題が発生します

if (!Object.prototype.forEach) {
  Object.defineProperty(Object.prototype, 'forEach', {
    value: function (callback, thisArg) {
      if (this == null) {
        throw new TypeError('Not an object');
      }
      thisArg = thisArg || window;
      for (var key in this) {
        if (this.hasOwnProperty(key)) {
          callback.call(thisArg, this[key], key, this);
        }
      }
    }
  });
}

var obj = {a:1,b:2};

obj.forEach(function(key, value){
    console.log(key, value)
})


3
mate.gwozdz

必要なキーワードは配列をフラット化することです。最新のjavascript配列には flat メソッドが付属しています。古いブラウザをサポートする必要がある場合、 nderscorejs のようなサードパーティのライブラリを使用できます。

ネイティブEx:

var response=[1,2,3,4[12,15],[20,21]];
var data=response.flat(); //data=[1,2,3,4,12,15,20,21]

アンダースコア例:

var response=[1,2,3,4[12,15],[20,21]];
var data=_.flatten(response);
0
Mat J