gpt4 book ai didi

javascript - 在Javascript中根据子数组的对象重新分类父数组

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:10 28 4
gpt4 key购买 nike

(也开放给一个php解决方案)

如果我在一个数组中有一个数组,你如何根据子数组的对象重新分类父数组?<​​/p>

这是我想要实现的一个例子:

假设原始数组是:

[
{
"name":"Jade",
"tags":[
"developer"
]
},
{
"name":"Bridge",
"tags":[
"cook"
]
},
{
"name":"Ever",
"tags":[
"artist"
]
},
{
"name":"Noah",
"tags":[
"artist",
"developer"
]
}
]

我希望能够将其重新分类为:

[
"artist": {
{
{
"name":"Noah",
"tags":[
"artist",
"developer"
]
}
}
"developer": {
{
"name":"Jade",
"tags":[
"developer"
]
},
{
"name":"Noah",
"tags":[
"artist",
"developer"
]
}
},
"cook": {
{
"name":"Bridge",
"tags":[
"cook"
]
},
}
]

这是我尝试过的:

(原始数组为var数据)

var data = [original array]
var newArray = [];

for (var i = 0; i < data.length; i++) {
for (var a = 0; a < data[i].tags.length; a++) {
newArray[] = data[i].tags[a];
if (newArray[i] == data[i].tags[a]) {
newArray[i] = data[i];
}
}
}

我的理论是将标签(在标签中)弹出到一个新数组中,如果原始 object.tags 与数组中的新对象具有相同的值,则将原始对象弹出到新对象中。

这种方法失败了。

最佳答案

我建议使用后端解决方案 (php),因为它会随着您的扩展而显着加快。

<?php
$sInFile = 'in.json';
$sOutFile = 'out.json';

$aDevelopers = array();
$aArtists = array();
$aCooks = array();

$sRaw = file_get_contents( $sInFile );
$aInData = json_decode( $sRaw );
$iCountData = count( $aInData );
for( $i = 0; $i < $iCountData; ++$i )
{
$iCountTags = count( $aInData[ $i ]->tags );
for( $j = 0; $j < $iCountTags; ++$j )
{
$aTmp = array();
if( ( !empty( $aInData[ $i ]->tags[ $j ] ) ) && $aInData[ $i ]->tags[ $j ] == 'developer' )
{
$aTmp[ 'name' ] = $aInData[ $i ]->name;
$aTmp[ 'tags' ] = $aInData[ $i ]->tags;
$aDevelopers[] = $aTmp;
}
$aTmp = array();
if( ( !empty( $aInData[ $i ]->tags[ $j ] ) ) && $aInData[ $i ]->tags[ $j ] == 'artist' )
{
$aTmp[ 'name' ] = $aInData[ $i ]->name;
$aTmp[ 'tags' ] = $aInData[ $i ]->tags;
$aArtists[] = $aTmp;
}
$aTmp = array();
if( ( !empty( $aInData[ $i ]->tags[ $j ] ) ) && $aInData[ $i ]->tags[ $j ] == 'cook' )
{
$aTmp[ 'name' ] = $aInData[ $i ]->name;
$aTmp[ 'tags' ] = $aInData[ $i ]->tags;
$aCooks[] = $aTmp;
}
}
}

$aFull[ 'developer'] = $aDevelopers;
$aFull[ 'artist' ] = $aArtists;
$aFull[ 'cook' ] = $aCooks;
$sFull = json_encode( $aFull );
file_put_contents( $sOutFile, $sFull );
?>

关于javascript - 在Javascript中根据子数组的对象重新分类父数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923163/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com