我想在一个mysql表中存储以下与一个(爸爸,儿子)表的关系,该表看起来如下所示:
| DAD || SON |
| mike. || june |
| mike || michael|
| june || elias |
| june || pepe |
等等...
我有一个未知深度的嵌套对象,看起来如下所示:
const originalObject = {
Dad: 'mike',
sons: [
{
dad: 'june',
sons: [
{
dad: 'elias',
},
{
dad: 'pepe',
},
],
},
{
dad: 'michael',
sons: [
{
dad: 'elias',
},
{
dad: 'janister',
},
{
dad: 'pepe',
sons: [
{
dad: 'lester',
},
],
},
],
},
],
};
我如何制作一个看起来像这样的数组:
const desiredArray = [
['mike', 'june'],
['mike', 'michael'],
['june', 'elias'],
['june', 'elias'],
etc,]
我已经将对象转换为数组,但我不确定它是否有用...现在的数组是这样的:
const parsedObjectToArray =[ 'mike',[ [ 'june', [elias, pepe] ], [ 'michael', [elias, janister, pepe] ] ] ];
那么,基于originalObject或parsedObjectToArray,如何将其中之一转换为DesireDarray?我已经找过了,但我在努力奋斗!谢谢!
您可以使用数组#flatmap
进行递归。
null
js lang-js prettyprint-override">const
getRelatives= ({ dad, sons = [] }) => sons.flatMap(son => [
[dad, son.dad],
...getRelatives(son)
]),
object = { dad: 'mike', sons: [{ dad: 'june', sons: [{ dad: 'elias' }, { dad: 'pepe' }] }, { dad: 'michael', sons: [{ dad: 'elias' }, { dad: 'janister' }, { dad: 'pepe', sons: [{ dad: 'lester' }] }] }] },
result = getRelatives(object);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
您可以使用递归函数,该函数将对象下潜并添加到整体的DADS
数组中。
const dads = [];
function addToDads(obj) {
obj.sons.forEach(son => {
dads.push([obj.dad, son.dad]);
if (son.sons) {
addToDads(son);
}
})
}
addToDads(originalObject);
console.log(dads);
请参阅以下操作:
null
const originalObject = {
dad: 'mike',
sons: [
{
dad: 'june',
sons: [
{
dad: 'elias',
},
{
dad: 'pepe',
},
],
},
{
dad: 'michael',
sons: [
{
dad: 'elias',
},
{
dad: 'janister',
},
{
dad: 'pepe',
sons: [
{
dad: 'lester',
},
],
},
],
},
],
};
const dads = [];
function addToDads(obj) {
obj.sons.forEach(son => {
dads.push([obj.dad, son.dad]);
if (son.sons) {
addToDads(son);
}
})
}
addToDads(originalObject);
console.log(dads);
问题内容: 我的数组是这样的: 我想将其转换为: 因此,基本上,分组依据。 我尝试着: 我只是不知道如何处理相似组值的分组。 问题答案: 首先,在JavaScript中,使用遍历数组通常不是一个好主意。 因此,您可以尝试执行以下操作: 在这里使用中间对象有助于加快处理速度,因为它可以避免嵌套循环搜索数组。另外,因为使用迭代遍历对象(而不是数组)是合适的。 附录 FWIW,如果要避免在结果数组中出现
我的数组是这样的: 我想把这个转换成: 所以,基本上,按分组。 我正在尝试: 我只是不知道如何处理相似组值的分组。
我使用的是OpenApi规范,这是生成类的代码示例: 我想禁止发送以下请求: 如果我使用了它看起来像: 有什么方法可以使用文件做同样的事情吗?
问题内容: 我正在尝试基于一些嵌套对象来过滤数组。 输入数组如下所示: 我希望这种情况的输出如下所示: 我正在使用此公式来做到这一点: 输出几乎是好的,但它返回的对象带有所有带有姓氏的对象(最好检查一下小提琴:D),而不是将其删除。我如何改善过滤? 问题答案: 调用之后,您需要将结果通过管道传递到,如下所示: 我在这里假设您不想操纵原始数组。因此,我正在使用Object.assign。
问题内容: 我需要从查询创建一个JSON输出,该查询使用具有一对多关系的两个表之间的内部联接。 我希望将辅助表的值作为主表的数组属性嵌套。 考虑以下示例: 并查询: 这将打印以下JSON: 但是,我希望将pets数据作为所有者数据中的数组存储: 我怎样才能做到这一点? 问题答案: 您可以使用以下查询:
我有一个函数返回包含2个数组的2个数组。 这些嵌套数组每个包含6个对象 我正在尝试迭代每个主2数组,并按类别返回嵌套数组的求和值,如下所示:记住,值当前是一个字符串。 我已经尝试了下面的,但我似乎不能得到它的权利,我看了许多这样的线程,我知道有吨类似的,但没有任何工作为我目前为止。蒂娅。 我可怜的尝试。