如何在vueJs中使用forEach?

时间:2017-03-01 15:40:47

标签: javascript arrays foreach vuejs2 vue.js

我在API调用中得到如下响应,

response

现在,我必须在数组中重复整个数组。我如何在VueJS中做到这一点?

我搜索过使用forEach ..我找不到像key | value对那样的每个用法。

有人可以帮我解决如何使用forEach或其他任何方法(VueJS)从该数组中获取值吗?

谢谢&的问候,

6 个答案:

答案 0 :(得分:17)

你也可以使用.map():

var list=[];

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

答案 1 :(得分:8)

VueJS 中,您可以使用 forEach ,如下所示。

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

所以,现在你可以把所有数组都放到 list 中。使用 for 循环来获取值或键

答案 2 :(得分:5)

我遇到了类似的问题并尝试过每次过滤。

var arr1 = [];
var arr2 = [];

this.myObj.filter(function (value, key) {
    arr1.push(myObj);
    console.log(value);
    console.log(key);
});

this.myObj.forEach(function (value, key) {
    arr2.push(myObj);
    console.log(value);
    console.log(key);
});

forEach和filter工作。请注意,“myObj”是我数据上的数组。 我正在使用Vue v2.4.4。

答案 3 :(得分:2)

在VueJS中,您可以遍历如下数组: const array1 = ['a','b','c'];

Array.from(array1).forEach(element => 
 console.log(element)
      );

在我的情况下,我想遍历文件并将其类型添加到另一个数组:

 Array.from(files).forEach((file) => {
       if(this.mediaTypes.image.includes(file.type)) {
            this.media.images.push(file)
             console.log(this.media.images)
       }
   }

答案 4 :(得分:0)

您可以使用本机javascript函数

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

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

或为每个对象创建对象原型,但通常会导致其他框架出现问题

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)
})


答案 5 :(得分:0)

您需要的关键字是将数组展平。现代javascript数组带有flat方法。如果需要支持旧版浏览器,可以使用underscorejs之类的第三方库。

本地专家:

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);