Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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,我有一个JavaScript对象数组,如下所示: [ {A:10}, {B:20}, {C:30} ] 我正试图将其转换为一个如下所示的对象数组(用于d3.js): 我只需执行以下操作即可获得对象的初始数组: var wordData = []; for (var i = 0; i < words.length; i++) { if (wordData.hasOwnProperty(words[i])) { wordData[words[i]] +=

我有一个JavaScript对象数组,如下所示:

[
  {A:10},
  {B:20},
  {C:30}
]
我正试图将其转换为一个如下所示的对象数组(用于d3.js):

我只需执行以下操作即可获得对象的初始数组:

var wordData = [];
for (var i = 0; i < words.length; i++) {
    if (wordData.hasOwnProperty(words[i])) {
        wordData[words[i]] += 1;
    } else {
        wordData[words[i]] = 1;
    }
}
var-wordData=[];
for(var i=0;i
这只是设置一个简单的散列,但不会在每个散列之前添加键

编辑


为了简单起见。

请尝试下面的代码。我试过使用for循环

var wordData = [
  {A: 10},
  {B: 20},
  {C: 30}
];

var result = wordData.map(function (item) {
    var key = Object.keys(item)[0];
    return {word: key, weight: item[key]};
});
var wordData =[
{A: 10},
{B: 20},
{C: 30}
];

var results = [];
for (var prop in wordData) {                    
    var key = Object.keys(wordData[prop])[0];
    result = {word: key, weight: wordData[prop][key]};
    results.push(result);
}

var json_result = JSON.stringify(results, null, 2);
console.log(json_result);
输出

[
  {
    "word": "A",
    "weight": 10
  },
  {
    "word": "B",
    "weight": 20
  },
  {
    "word": "C",
    "weight": 30
  }
]

输出

[{"word":"A","weight":10},{"word":"B","weight":20},{"word":"C","weight":30}]

<div id="data">
  Run the code below
</div>

var wordData = {}; // Edit, use {} intead of [] here.
for (var i = 0; i < words.length; i++) {
    // The problem is definitely in this loop.
  if (wordData.hasOwnProperty(words[i])) {
    wordData[words[i]] += 1;
  } else {
    wordData[words[i]] = 1;
  }
}

var results = [];
for (var prop in wordData) {  
    result = {word: prop, weight: wordData[prop]};
    results.push(result);
}
var json_result = JSON.stringify(results, null, 2);
document.getElementById('data').innerHTML = json_result;
[{“单词”:“A”,“权重”:10},{“单词”:“B”,“权重”:20},{“单词”:“C”,“权重”:30}]
运行下面的代码
var wordData={};//编辑,在这里使用{}插入[]。
for(var i=0;i

请尝试下面的代码。我试过使用for循环

var wordData =[
{A: 10},
{B: 20},
{C: 30}
];

var results = [];
for (var prop in wordData) {                    
    var key = Object.keys(wordData[prop])[0];
    result = {word: key, weight: wordData[prop][key]};
    results.push(result);
}

var json_result = JSON.stringify(results, null, 2);
console.log(json_result);
输出

[
  {
    "word": "A",
    "weight": 10
  },
  {
    "word": "B",
    "weight": 20
  },
  {
    "word": "C",
    "weight": 30
  }
]

输出

[{"word":"A","weight":10},{"word":"B","weight":20},{"word":"C","weight":30}]

<div id="data">
  Run the code below
</div>

var wordData = {}; // Edit, use {} intead of [] here.
for (var i = 0; i < words.length; i++) {
    // The problem is definitely in this loop.
  if (wordData.hasOwnProperty(words[i])) {
    wordData[words[i]] += 1;
  } else {
    wordData[words[i]] = 1;
  }
}

var results = [];
for (var prop in wordData) {  
    result = {word: prop, weight: wordData[prop]};
    results.push(result);
}
var json_result = JSON.stringify(results, null, 2);
document.getElementById('data').innerHTML = json_result;
[{“单词”:“A”,“权重”:10},{“单词”:“B”,“权重”:20},{“单词”:“C”,“权重”:30}]
运行下面的代码
var wordData={};//编辑,在这里使用{}插入[]。
for(var i=0;i


您需要迭代两次。但是
{A,10}
看起来不是有效的javascript,它应该是
{A:10}
。更正,谢谢@nicaeloccurrence count-您的预期输出没有反映这一点。请确保:)只需知道
权重
值是该键(
word
的次数)已通过迭代单词数组发生。您需要迭代两次。但是
{A,10}
看起来不是有效的javascript,它应该是
{A:10}
。已更正,thankyou@nicaeloccurrence count-您的预期输出没有反映出这一点(请确定:)只需知道
weight
值是关键字(
word
)通过迭代一个单词数组发生的次数。这可能是答案,但我无法让它工作。我不明白为什么我的源代码集
wordData
在本地测试时长度为1。我正在用一个新的编辑更新我的问题,该编辑显示了Chrome inspector显示的内容。这可能是因为我创建
wordData
对象的方式。编辑3是最新的编辑。@mariocatch,而不是屏幕截图。您可能想发布
JSON.stringify(wordData,null,2)
…那么您最初的假设(“我有一个对象数组”)是错误的。;)显示构建“数组”的代码。我已经编辑了这个长问题,并添加了一个复制该问题的代码。那么,更改
var wordData=[]
to
var-wordData={}。)这可能是答案,但我无法让它发挥作用。我不明白为什么我的源代码集
wordData
在本地测试时长度为1。我正在用一个新的编辑更新我的问题,该编辑显示了Chrome inspector显示的内容。这可能是因为我创建
wordData
对象的方式。编辑3是最新的编辑。@mariocatch,而不是屏幕截图。您可能想发布
JSON.stringify(wordData,null,2)
…那么您最初的假设(“我有一个对象数组”)是错误的。;)显示构建“数组”的代码。我已经编辑了这个长问题,并添加了一个复制该问题的代码。那么,更改
var wordData=[]
to
var-wordData={}。)我在这里复制了你的代码:在那个例子中,它在数组中提供了空对象。我在这里复制了你的代码:在那个例子中,它在数组中提供了空对象。