Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 - Fatal编程技术网

Javascript 如何从对象数组中创建键值对对象字符串?

Javascript 如何从对象数组中创建键值对对象字符串?,javascript,Javascript,我有一个来自后端的对象列表,如下所示 const paramData = [ {id: "search_type", value: "All items", required: true}, {id: "time_period", value: "Week", required: false}, {id: "user_type", value: "All Us

我有一个来自后端的对象列表,如下所示

  const paramData = [
    {id: "search_type", value: "All items", required: true},
    {id: "time_period", value: "Week", required: false},
    {id: "user_type", value: "All Users", required: false},
    {id: "question_type", value: "Multiple questions", required: true},
  ];
  const extractedData = "{\"search_type\": \"All items\", \"time_period\": \"Week\", \"user_type\": \"All Users\", \"question_type\": \"Multiple questions\"}";
我只想提取每个对象的
id
value
键的值,并制作如下内容

  const paramData = [
    {id: "search_type", value: "All items", required: true},
    {id: "time_period", value: "Week", required: false},
    {id: "user_type", value: "All Users", required: false},
    {id: "question_type", value: "Multiple questions", required: true},
  ];
  const extractedData = "{\"search_type\": \"All items\", \"time_period\": \"Week\", \"user_type\": \"All Users\", \"question_type\": \"Multiple questions\"}";
实现这一目标的最佳方法是什么?

您可以使用reduce

  const extractedData = paramData.reduce((obj, item) => {
     obj[item.id] = item.value
     return obj
   }, {})
请参阅详细说明 我还强烈推荐
map
filter
。使用
reduce
,它们是3颗星阵列

您可以使用reduce

  const extractedData = paramData.reduce((obj, item) => {
     obj[item.id] = item.value
     return obj
   }, {})
请参阅详细说明
我还强烈推荐
map
filter
。使用
reduce
,它们是阵列中的三星

ilkerkaran的替代解决方案可以是:

const paramData=[{
id:“搜索类型”,
值:“所有物品”,
必填项:true
}, {
id:“时间段”,
值:“周”,
必填项:false
}, {
id:“用户类型”,
值:“所有用户”,
必填项:false
}, {
id:“问题类型”,
值:“多个问题”,
必填项:true
},];
var extractedData=“”;
for(paramData中的var i){
extractedData+=`“${paramData[i].id}”:“${paramData[i].value}”,`;
}
extractedData=`{${extractedData.slice(0,-2)}}}`;

控制台日志(提取数据)ilkerkaran的替代解决方案可以是:

const paramData=[{
id:“搜索类型”,
值:“所有物品”,
必填项:true
}, {
id:“时间段”,
值:“周”,
必填项:false
}, {
id:“用户类型”,
值:“所有用户”,
必填项:false
}, {
id:“问题类型”,
值:“多个问题”,
必填项:true
},];
var extractedData=“”;
for(paramData中的var i){
extractedData+=`“${paramData[i].id}”:“${paramData[i].value}”,`;
}
extractedData=`{${extractedData.slice(0,-2)}}}`;
控制台日志(提取数据)