Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将键数组附加到对象?_Javascript - Fatal编程技术网

Javascript 如何将键数组附加到对象?

Javascript 如何将键数组附加到对象?,javascript,Javascript,我有一个字符串数组和一个类似这样的params对象。如何创建参数常量?使用forEach、map和or过滤器 key = ['dog', 'car', 'cat']; value = [ 3, 1, 2 ]; const params = { item: { [key]: value[0], // more keys to be appended } } 可以使用以下语法设置对象的键: obj[key]

我有一个字符串数组和一个类似这样的params对象。如何创建参数常量?使用forEach、map和or过滤器

key = ['dog', 'car', 'cat'];
value = [ 3, 1, 2 ];

    const params = {
       item: {
           [key]: value[0],
           // more keys to be appended
       }
    }

可以使用以下语法设置对象的键:

obj[key] = value
因此,在您的情况下,您可以做如下操作:

key = ['dog', 'car', 'cat'];
value = [ 3, 1, 2 ];

var params = {
    item : {}
}

for (var i=0; i<key.length;i++){
    params.item[key[i]] = value[i];
}
key=['dog'、'car'、'cat'];
值=[3,1,2];
变量参数={
项目:{}
}

对于(var i=0;i您可以这样做:

value.reduce((acc, val, index) => (acc[key[index]] = val, acc), {});
这将产生:


{dog:3,car:1,cat:2}

只是循环遍历每个值:

const key=['dog'、'car'、'cat'];
常量值=[3,1,2];
常量项={};
key.forEach((k,i)=>{item[k]=value[i];});
常数parmas={};
parmas.item=项目;

console.log(parmas);
您希望结果是什么?
[key]
不适用于数组。您需要将其写成
{[key[0]]:value[0],[key[1]]:value[1],…}
。或者是的,只需使用循环并从空对象开始动态分配属性。无需手动输入每个键值对即可生成参数。我这样做的原因是,有时我的键值对可能有几十个,我希望根据有多少个键值对来动态创建它。我正在尝试插入将它转换到数据库中,以便根据有多少属性生成列。