在javascript中将值从一个字典复制到另一个字典

Ken*_*enz 7 javascript dictionary

以下代码片段无法将内容从一本字典复制到另一本字典。它抛出一个类型错误,显示“copy.Add 不是函数”。有人可以建议将键值对从一个字典复制到另一个字典的方法。

dict = {"Name":"xyz", "3": "39"};
var copy={};
console.log(dict);
for(var key in dict)
{
   copy.Add(key, dict[key]);
}
console.log(copy);
Run Code Online (Sandbox Code Playgroud)

Soh*_* Si 24

在 Javascript 中,用于Object.assign(copy, dict)将内容复制到另一个已经存在的字典中(即“就地”复制):

dict = {"Name":"xyz", "3": "39"};
var copy={};
console.log(dict, copy);
Object.assign(copy, dict);
console.log(dict, copy);
Run Code Online (Sandbox Code Playgroud)

在较新的 JavaScript 版本中,您还可以使用...运算符将 dict 克隆为新的 dict (此方法创建一个新实例):

var copy = {...dict};
Run Code Online (Sandbox Code Playgroud)

额外:您还可以使用此语法组合(合并)两个词典。就地:

Object.assign(copy, dict1, dict2);
Run Code Online (Sandbox Code Playgroud)

或者通过创建一个新实例:,

var copy = {...dict1, ...dict2};
Run Code Online (Sandbox Code Playgroud)


The*_*oob -3

这应该适合你

using System;
using System.Linq;
using System.Collections.Generic;


namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>() { {"Name", "xyz" }, {"3", "39"}};
            Dictionary<string, string> copy = new Dictionary<string, string>();
            dic.Copy(copy);
            copy.ToList().ForEach(c => Console.Write("\n" + c));
            Console.ReadLine();
        }
    }

    public static class Ext
    {
        public static void Copy(this Dictionary<string, string> dic, Dictionary<string, string> other)
        {
            dic.ToList().ForEach(d => other.Add(d.Key, d.Value));
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

我确定之前已经回答过这个问题