社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

将数组传递给jQuery每个函数以重新格式化数据

Matts • 5 年前 • 1613 次点击  

我有一组Json数据,需要重新格式化。

数据作为1对象的一部分按行进行如下结构:

"2019-12-27": Object{'a':'1', 'b':'2', 'c':'3', 'd':'4'} 

我想解析每一行,使其与此(或数组)类似,并将所有行合并为一个对象:

["2019-12-27", "1", "2", "3", "4"]

这是我尝试使用$的代码。每个函数都可以工作,但都失败了,因为数组不在内部函数的作用域内。- TypeError: parsed[count] is undefined 有没有办法把解析后的数组从外循环传递到内循环?

parsed = [];
var count = 0;
$.each(data, function(k, outer) {
  count += 1;
  parsed[count][] = k;
  $.each(outer, function(i, inner) {
    parsed[count][] = i;
    });
});
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51988
 
1613 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Matt
Reply   •   1 楼
Matt    5 年前

不能使用短的C语法推送到数组 (list[] = val) . 您将寻找一个名为 push

var x = []; // declare an array
var myObject = { a: 1, b: 2 }; // Defining an example object
var mySecondObject = { a: 3, b: 5 }; // another sample object
x.push(myObject);
x.push(mySecondObject);

console.log(x);

输出:

[
    { a: 1, b: 2 },
    { a: 3, b: 5 }
]

如果我们使用您提供的代码:

var parsed = [];
var count = 0;
$.each(data, function(k, outer) {
  count += 1;
  parsed[count].push(k);
  $.each(outer, function(i, inner) {
    parsed[count].push(i);
    });
});

如果要允许push确定基于0的自动索引,则不一定需要count变量。

Andreas
Reply   •   2 楼
Andreas    5 年前

这不需要jQuery。 Object.entries() , Object.values() 以及 ... spread syntax 会做得很好:

const input = {
   "2019-12-27": {'a':1, 'b':2, 'c':3, 'd':4}
  ,"2019-12-28": {'a':2, 'b':4, 'c':6, 'd':8}
};
const output = Object.entries(input)
                     .map(entry => [entry[0], ...Object.values(entry[1])]);

console.log(output);