gpt4 book ai didi

Javascript 通过键减少对象

转载 作者:行者123 更新时间:2023-12-03 11:43:44 25 4
gpt4 key购买 nike

是否有任何 underscorejs 函数(或 native /自定义 js 函数)可以转换此结构:

(请看真实示例@Jsfiddle)

//Simple version, check Jsfiddle for the complete one
var object = {
"users" : [
{
name : "name1"
},
{
name : "name2",
}
]
}

像这样的另一个对象:

//Simple version, check Jsfiddle for the complete one
var object2 = {
users : {
name : "name1, name2"
}
}

最佳答案

这使得与你的 fiddle 相同的对象:

function getType(val){
if(Object.prototype.toString.call(val) == '[object Array]') return 'array';
if(val !== null && typeof val === 'object') return 'object';
return 'other';
}

function deepReduce(object){
var obj={};
function travel(object, key, obj){
if( getType(object) == 'array'){ // if its array, travel
for(var i=0;i<object.length;i++){
travel(object[i],key,obj)
}
}else if(getType(object)=='object'){ // if its object
for(var i in object){
if(getType(object[i])!='other'){ // if property is object, keep travel
if(!obj.hasOwnProperty(i)){
obj[i]={};
}
travel(object[i],i,obj[i])
}else{ // else, set property
obj[i] = (obj[i] == undefined ? object[i] : obj[i]+',' + object[i]) ;
}
}
}
}
travel(object,null, obj);
return obj;
}


var reduced=deepReduce(object)
console.log(reduced)

完整 fiddle :http://jsfiddle.net/97g5v5tt/

关于Javascript 通过键减少对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147355/

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