从Javascript中的两个嵌套数组中获取一个对象
Get an object from two nested array in Javascript
我想要一个来自两个数组的对象,我按照以下方式完成了。
for (var j = 0; j < rawDataRows.length; j++) {
for (var i = 0; i < categories.length; i++) {
var category = categories[i];
var rowValue = rawDataRows[j];
// here I do got the right value for category
console.log(category);
console.log(rowValue);
// but the following line doesn't interpret category as a variable
formattedDataRows.push({category: rowValue});
}
}
我以为我能得到这样的东西:
[{"category1": "value1"},{"category2": "value2"}, {"category3": "value3"}]
然而,事实证明我得到了:
[{"category": "value1"}, {"category": "value2"}, {"category": "value3"}]
有人能指出我错在哪里吗?此外,如果你有更好的方法来实现目标,请留下评论。Javascript只是没有jQuery或其他框架。谢谢
ECMAScript 5及更低版本中的对象文字语法不允许将变量标识符指定为属性名称。而是先创建对象,然后使用括号表示法。
var o = {};
o[category] = rowValue;
formattedDataRows.push(o);
使用ECMAScript 6,您可以执行以下操作:
formattedDataRows.push({[category]: rowValue});
当然,目前对该语法的支持是有限的。
如果你想让两个值一起递增(看起来),同时假设类别的长度与rawdataRows的长度相同,我认为你真的想要一个循环而不是两个循环:
for (var i = 0; i < categories.length; i++) {
var category = categories[i];
var rowValue = rawDataRows[i];
您可以根据需要使用categories[i].toString();
来获取字符串:
var categories = ["category1", "category2", "category3"];
var rawDataRows = ["value1", "value2", "value3"];
var formattedDataRows = [];
for (var j = 0; j < rawDataRows.length; j++) {
for (var i = 0; i < categories.length; i++) {
var category = categories[i].toString();
var rowValue = rawDataRows[j].toString();
var tmpObj = {}
tmpObj[category] = rowValue
formattedDataRows.push(tmpObj);
//formattedDataRows.push({[category]: rowValue});
}
}
document.write(JSON.stringify(formattedDataRows))
相关文章:
- 如何对两个嵌套对象进行排序
- 如何加载嵌套3个状态的UI路由器UI视图模板
- 嵌套两个以上任务的回调
- Chrome:如何在不嵌套的情况下将两个连续跨距插入可编辑实体中
- 如何选择嵌套了两个 .each() 函数的多个元素
- 我需要在单击时运行两个函数.即使嵌套在一起,我也无法让它们都工作
- 如何在同一个表中显示这两个嵌套ng重复的元素
- 如何在AngularJS页面中嵌套两个控制器
- 合并两个嵌套的JSON数组
- 解析云代码-使用关系数据嵌套多个查询
- 单击两个嵌套<李>s
- 如何在两个大括号之间找到代码,尊重嵌套
- 如何获取嵌套在两个赋值函数和一个 forEach 循环中的值
- 对两个嵌套的ng重复进行角度自定义过滤
- AngularJS$q中的两个嵌套线程是否可以在没有$q.dedefe()的情况下分叉和连接
- 隐藏在递归树中嵌套两次以上的元素
- 用angularjs嵌套两个点击事件
- 用d3在多个svg容器内嵌套多个矩形
- 使用WordPress REST API嵌套第二个$.getJSON请求以检索类别名称/链接
- 以这种方式嵌套多个react组件可以被视为反模式吗?