gpt4 book ai didi

javascript - 将 Javascript 对象成员连接在一起?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:27 26 4
gpt4 key购买 nike

给定具有如下成员的任何对象:

target
{
x1 : 1
x2 : 2
x3 : 3
y1 : 6
y2 : 5
y3 : 4
}

我需要将对象转换成这样的东西:

target
{
x : [1, 2, 3]
y : [6, 5, 4]
}

从我所知道的基本 JavaScript 来看,以下函数似乎可以工作:

function joinParameters(target, paramName) {
var count = 1;
var array = [];
var name = paramName.concat(count);
var value = target[name];
while (typeof value != undefined) {
array.push(value);
name = paramName.concat(count);
}
target[paramName] = array;
}

所以,我可以说 joinParameters(target, "x");然而,问题在于

    var value = target[name];

始终未定义。我按照 FireBug 中的代码来确保目标对象具有我试图获取的属性,并且确实如此。所以,我不太确定出了什么问题。

如果 jQuery 有一个优雅的方式来做到这一点,那么我更喜欢那个解决方案。

最佳答案

使用 underscore.js:

_(target).keys().reduce(function(memo, key){
var split = /([^\d]+)([\d]+)/.exec(key);
memo[split[1]] = memo[split[1]]||[];
memo[split[1]][parseInt(split[2],10)-1] = target[key];
return memo;
},{});

工作示例:

http://jsfiddle.net/PLgN5/

关于javascript - 将 Javascript 对象成员连接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5162455/

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