[英]how to loop over array of objects and get values
请完整阅读。 除非您真正找到它,否则不要将其标记为重复。 我有如下的对象数组。
const filterParams = [
{ 'waterfront_type[]': 'Cove' },
{ 'area[]': 'Applehead Island' },
{ 'waterfront_type[]': 'Channel' },
{ 'waterfront_type[]': 'Open Water' },
{ baths: '0 - 14' },
{ price: '0.00 - 9,876,100.00' }
];
我需要遍历并将其添加到表单数据中。 我在下面做。
filterParams.map(param => {
return formData.append(param.key, param.value);
});
预期:param.key是waterfront_type [],param.value是Cove。 因此在内部应为formData.append('waterfront_type[]', 'Cove');
获取:两者均未定义。 formData.append(undefined, undefined);
您可以使用Object.entries()
和数组解构来获取键和值。
注意:默认= []
处理空对象的情况。
filterParams.map(param => {
const [[key, value] = []] = Object.entries(param);
return formData.append(key, value);
});
如果只需要调用formData(key, value)
,而不关心返回的值(如果有),请使用Array.forEach()
而不是Array.map()
:
filterParams.forEach(param => {
const [[key, value] = []] = Object.entries(param);
formData.append(key, value);
});
传递给.map
函数的param
变量是一个javascript对象,您不能仅使用object.key
来访问其键。 而是:
filterParams.map(param => {
var keys = Object.keys(param);
return formData.append(keys[0], param[keys[0]]);
});
在这里,我们获取了param
对象的所有键,并获得了第一个(第0个索引)作为所需的键(假设数组中的对象具有一个键)。
因此,您要将所有字典entrySet放入FormData中:
filterParams.forEach(param => {
Object.keys(param).forEach(function(key) {
let value = param[key];
formData.append(key, value);
});
});
它将产生以下输出:
["waterfront_type%5B%5D=Cove",
"area%5B%5D=Applehead%20Island",
"waterfront_type%5B%5D=Channel",
"waterfront_type%5B%5D=Open%20Water",
"baths=0%20-%2014",
"price=0.00%20-%209%2C876%2C100.00"]
您可以使用javascript过滤器
filterParams = filterParams.filter(function(itm){
Object.keys(itm).forEach(function(key, value){
return formData.append(key, value);
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.