gpt4 book ai didi

Javascript:如何轻松地用第二个对象的数据替换对象值?

转载 作者:行者123 更新时间:2023-12-01 03:29:38 26 4
gpt4 key购买 nike

我目前的情况是,我有 2 个如下所示的对象:

object a = {n: 15, b: 12, v: 10, h: 9} and so on.
object b = {1: e, 2: b, 3: z, 4: w} and so on.

我需要从对象 b 中获取值并用它们替换对象 a 中的值。结果如下:

object c = {n: e, b: b, v: z} etc.

一件重要的事情是,如果对象 b 中的项目比对象 a 中的项目多,我仍然需要将它们添加到对象 c 的末尾。因此,如果对象 b 中还有 3 个项目,那么最后可能会发生类似 {24: a, 25: y, 26:w} 的情况。

当然,我的第一个想法是一个循环,我将迭代对象 a 中的每个项目,并将“值”替换为对象 b 中的“值”。但我不知道是否有更好的方法,尤其是我担心确保对象 b 中的所有项目都包含在新对象中。

出于这种考虑,另一种选择可能是用对象 a 中的键替换对象 b 中的键。这样,如果对象 a 用完,对象 b 中的最后一项将不会被排除。

我也尝试过:

Object.assign(a, b);

但只有当 key 相同时才有效,所以这是行不通的。我需要发生任何事情来匹配两个对象的索引。

如果重要的话,我可以将对象 b 更改为我想要的任何内容,因为它是静态的。所以,我可以这样做:

object b = [e, b, z] etc. or
object b = {e: e, b: b, z: z}

只要是最容易做的事。

我很感激任何人可能有的任何想法,或者如果你能给我指出一篇涵盖此类内容的好帖子的方向。我目前正在互联网上搜索并尝试任何听起来可能有效的方法,但到目前为止,没有任何合适的方法。

还值得注意的是,此时我正在使用纯普通 JS,因此如果有一个库或其他东西可以使这变得 super 简单,我对此持开放态度。

最佳答案

您可以执行以下操作

var objectA = {
b: "test",
a: "test2",
c: "test3",
d: "test4"
};

var objectB = ["new", "new2", "new3", "new4", "new5", "new6"];
var index = 0;

for (var prop in objectA) {
if (objectA.hasOwnProperty(prop)) {
objectA[prop] = objectB[index];
index++;
}
}

for(index; index < objectB.length; index++) {
objectA[index] = objectB[index];
}

有几件事:

  1. for..in 循环基于实现顺序。因此,无论属性添加到对象的顺序如何,循环的顺序都是如此。
  2. 脱离上下文来看,您所请求的功能似乎有代码味道。通常,您不会按照您请求的方式合并两个对象。如果您想提供更多背景信息,可能会提供更好的解决方案。

关于Javascript:如何轻松地用第二个对象的数据替换对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44600114/

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