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
Javascript 我想从数组返回一个JSON对象_Javascript_Arrays_Json - Fatal编程技术网

Javascript 我想从数组返回一个JSON对象

Javascript 我想从数组返回一个JSON对象,javascript,arrays,json,Javascript,Arrays,Json,我有以下数组 numbers = ["1","2"] 我想将此数组转换为以下对象 numberList = {"1" : [], "2" : []} 我试着跟在后面。但它不起作用。我想把这个数字作为变量传递 numbers.map( function(number) { return {number : []}; }) 我想我应该简单地循环它并构建对象 let numbers = ["

我有以下数组

numbers = ["1","2"]
我想将此数组转换为以下对象

numberList = {"1" : [], "2" : []}
我试着跟在后面。但它不起作用。我想把这个数字作为变量传递

numbers.map( function(number) {
      return {number : []};
  })

我想我应该简单地循环它并构建对象

let numbers = ["1","2"];
let newObject = {};

for(let i=0; i < numbers.length; i++){
    newObject[numbers[i]] = [];
}

console.log(newObject);
让数字=[“1”,“2”];
让newObject={};
for(设i=0;i

在我看来,这里的其他答案提供了更干净的方法。这是一个非常古老的学派。

您希望将数组转换为对象。要做到这一点,您需要使用reduce

number=[“1”,“2”]
var结果=数字。减少(函数(o,n){
o[n]=[];
返回o;
}, {});

控制台日志(结果)您可以映射条目并从中构建对象

const
数字=[“1”,“2”],
object=object.fromEntries(numbers.map(key=>[key,[]));

console.log(对象)
reduce,而不是mapJSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON.numbers.map(函数(number){return{[number]:[]};})或者甚至是
for(const number of numbers){newObject[number]=[];}
(并同意循环::-)或者像尼娜展示的那样,
fromEntries
)我意识到所有这些答案都有更干净的方法来实现这一点。哦,一个简单的循环很好,干净,清晰,高效。我当然不会使用
reduce
。过于复杂,容易出错。