如何在Node.js中从数组中的值创建对象
How do I create objects from values in an array in Node.js?
我有一个数组,由单词列表和每个单词的单词计数和ID组成。有点像:
var array = [[word1, word2, word3],[3,5,7],[id1,id2,id3]]
现在,我想为每个单词创建一个对象,将单词作为名称,将count和ID作为值。所以它看起来是这样的:
var word1 = {count: 3, id: 'id1'}
我该如何做到这一点?我试着使用如下所示的for循环来完成它,但它不起作用。如何根据数组中的值设置每个对象的名称?
for (var y=0; y < array[0].length; y++) {
var array[0][y] = {count: array[1][y], id: array[2][y]};
}
不需要单独的对象,而是可以在一个dict对象中添加单词,如下所示:
var words = {};
for (var y=0; y < array[0].length; y++) {
words[array[0][y]] = {count: array[1][y], id: array[2][y]};
}
并且,您可以按以下方式访问word1
:
words['word1'] // {count: 1, id: id1}
// if the word1 doesn't contain spaces, you could also use
words.word1 // {count: 1, id: id1}
如果您知道array [0]
是有序密钥,array[1]
是计数,array[2]
是ID,那么:
var array = [[word1, word2, word3],[3,5,7],[id1,id2,id3]];
var orderedKeysArray = array[0];
var orderedCountArray = array[1];
var orderedIdArray = array[2];
//maybe add some code here to check the arrays are the same length?
var object = {};
//add the keys to the object
for(var i = 0; i < orderedKeysArray.length; i++) {
object[orderedKeys[i]] = {
count: orderedCountArray[i],
id: orderedIdArray[i]
};
}
然后你可以引用vars的对象,比如:
object.word1;
object.word2;
object.word3;
Loadash
var array = [['word1', 'word2', 'word3'],[3,5,7],['id1','id2','id3']]
var output = _.reduce(array[0], function (output, word, index) {
output[word] = {count:array[1][index],id:array[2][index]};
return output;
},{});
相关文章:
- 为对象数组创建列表项
- 从数据对象数组创建折线图
- 在 JavaScript 中创建类似数组的对象
- Javascript:创建一个随机数学方程数组作为对象,20次
- 使用JavaScript's Reduce从对象数组创建数组
- Javascript.创建类似数组的对象.是否可以使 .length 自动增量
- 使用拆分字符串的数组创建一个对象
- 从一组数据或数组创建对象
- 从另一个 JSON 对象数组创建 JSON 对象数组
- 从现有的对象数组创建 JavaScript 对象数组
- JavaScript 创建带有私有数组的对象
- Javascript - 从数组创建深层对象
- 如何使用对象数组创建对象
- 创建具有相同动态类的元素的数组或对象
- 从数组创建多维对象,将该数组中的值指定为新对象中的键
- Object.创建数组和对象属性的复制引用
- 从动态HTML数组创建对象
- 从键数组和值数组创建对象
- Javascript从数组创建对象
- 用动态数组创建对象