【发布时间】:2014-10-20 01:23:38
【问题描述】:
我遇到了 js 数组的问题。 我的补丁名称(字符串)看起来像(“user.joey.friends.0.franc”),我需要“压缩”看起来像这样:
console.log( parseArray( "user.joey.friends.0.franc" ) );
//Object {
user: {
joey: {
friends: {
0: {
franc: 1
}
}
}
}
}
有什么想法,怎么做?
【问题讨论】:
-
首先:您正在处理一个 JavaScript object——其中可能包含一个数组(取决于您如何处理“0”)。第二——你试过什么?你最好的解决方案是递归的——拿一个对象,看看你的密钥
user是否在那里。如果没有,请添加密钥。然后,向下传递该对象和您的下一个键joey并一点一点地遍历您的字符串。您可以在字符串上使用split方法将其分开。 -
我不知道你想在这里做什么,但你不能引用像
variable.variable.0.variable这样的点格式的数字,因为它会将其视为小数。您必须使用括号variable.variable[0].variable -
真的不清楚你在问什么。你是说你有一个对象的结构是你为
a引用的,并且你正在尝试查找由你的字符串"user.joey.friends.0.franc"定义的属性?如果是这样,@Jeremy 就在正确的轨道上,但它甚至不必是递归的,它只是一个循环。 -
感谢您的回答,但我还有其他问题,我有数组的字符串名称(“user.joey.friends.0.franc”),我需要将数组名称转换为对象(用户:{ joey :{ .. } } ) @Jeremy J Starcher,谢谢你的想法,但有更简单的方法吗?
标签: javascript arrays string parsing converter