Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象数组上循环并获取值_Javascript_Arrays - Fatal编程技术网

Javascript 如何在对象数组上循环并获取值

Javascript 如何在对象数组上循环并获取值,javascript,arrays,Javascript,Arrays,请仔细阅读。在真正找到之前,不要将其标记为重复。我有一个如下所示的对象数组 const filterParams = [ { 'waterfront_type[]': 'Cove' }, { 'area[]': 'Applehead Island' }, { 'waterfront_type[]': 'Channel' }, { 'waterfront_type[]': 'Open Water' }, { baths: '0 - 14'

请仔细阅读。在真正找到之前,不要将其标记为重复。我有一个如下所示的对象数组

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);
    });
我需要循环这个,并将它添加到表单数据中。我在做下面的事

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(未定义,未定义)
param
变量传递给
.map
函数是一个javascript对象,您不能仅使用
对象.key来访问它的键。相反,你应该:

filterParams.map(param => {
   var keys = Object.keys(param);
   return formData.append(keys[0], param[keys[0]]);
});

这里,我们获取
param
对象的所有键,并获取第一个(第0个索引)作为所需的键(假设您的数组中有带有一个键的对象)。

param
变量传递给
。map
函数是一个javascript对象,您不能仅使用
对象.key
访问其键。相反,你应该:

filterParams.map(param => {
   var keys = Object.keys(param);
   return formData.append(keys[0], param[keys[0]]);
});

在这里,我们将获取
param
对象的所有键,并获取第一个(第0个索引)作为所需的键(假设数组中有一个键的对象)。

因此,您希望将所有字典条目集放入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"]

因此,您希望将所有字典条目集放入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"]
您可以使用和来获取键和值

注意:默认的
=[]
处理空对象的情况

filterParams.map(param => {
  const [[key, value] = []] = Object.entries(param);
  return formData.append(key, value);
});
如果您只需要调用
formData(key,value)
,而不关心返回的值(如果有),请使用而不是:

您可以使用和来获取键和值

注意:默认的
=[]
处理空对象的情况

filterParams.map(param => {
  const [[key, value] = []] = Object.entries(param);
  return formData.append(key, value);
});
如果您只需要调用
formData(key,value)
,而不关心返回的值(如果有),请使用而不是:


您可以使用javascript过滤器

 filterParams = filterParams.filter(function(itm){
   Object.keys(itm).forEach(function(key, value){
     return formData.append(key, value);
   })
 })

您可以使用javascript过滤器

 filterParams = filterParams.filter(function(itm){
   Object.keys(itm).forEach(function(key, value){
     return formData.append(key, value);
   })
 })

Expected:param.key是waterfront_type[]
如果您只想在数组中循环,那么为什么要使用
.map
呢?请尝试使用formData.append(Object.keys(param)[0],Object.values(param)[0])@user3743266我不认为这样做会像您认为的那样做。
Expected:param.key是waterfront_type[]
如果只想在数组中循环,为什么要使用
.map
呢?请尝试使用formData.append(Object.keys(param)[0],Object.values(param)[0])@user3743266我不认为这是你认为它应该做的。如果你只想在数组中循环,为什么要使用
.filter
?在数组中循环还是使用javascript过滤器我认为两者应该是一样的。不管怎样,您已经遍历了该数组,无论您使用的是过滤器、映射还是简单循环迭代。迭代的复杂性将是相同的。谢谢如果没有关系,为什么会有不同的方法-
.filter
.map
.forEach
。一些
。每个
。查找
?如果它们只是遍历数组,那么肯定需要一个数组。在任何PL中,数组迭代只在O(n)时间内完成。区别在于我们拾取(通过元素搜索)的方式可能是(二进制搜索方式、树形式或散列方式),在这种情况下,搜索可能需要O(logn)时间或O(1)时间,但所有这些都在排序数组上工作,因为对象数组,未排序,要使其排序,您需要快速排序或其他一些方法,这些方法本身需要O(nlogn)或O(n)时间。因此,无论您使用的是(filter、map或forEach…等等),您都需要以各种可能的方式迭代数组。我希望你说得清楚。但是你特别建议
.filter
。为什么?与其他方法相比有什么优势?你知道为什么会有不同的吗?如果你只想在数组中循环,为什么要使用
.filter
?在数组中循环还是使用javascript过滤器?我认为两者应该是相同的。不管怎样,您已经遍历了该数组,无论您使用的是过滤器、映射还是简单循环迭代。迭代的复杂性将是相同的。谢谢如果没有关系,为什么会有不同的方法-
.filter
.map
.forEach
。一些
。每个
。查找
?如果它们只是遍历数组,那么肯定需要一个数组。在任何PL中,数组迭代只在O(n)时间内完成。区别在于我们拾取(通过元素搜索)的方式可能是(二进制搜索方式、树形式或散列方式),在这种情况下,搜索可能需要O(logn)时间或O(1)时间,但所有这些都在排序数组上工作,因为对象数组,未排序,要使其排序,您需要快速排序或其他一些方法,这些方法本身需要O(nlogn)或O(n)时间。因此,无论您使用的是(filter、map或forEach…等等),您都需要以各种可能的方式迭代数组。我希望你说得清楚。但是你特别建议
.filter
。为什么?与其他方法相比有什么优势?你知道为什么会有不同的吗?