我在API调用中得到如下响应,
现在,我必须在数组中重复整个数组。我如何在VueJS中做到这一点?
我搜索过使用forEach ..我找不到像key | value对那样的每个用法。
有人可以帮我解决如何使用forEach或其他任何方法(VueJS)从该数组中获取值吗?
谢谢&的问候,
答案 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);