Javascript 具有给定键数组中的键/值对的对象数组&;价值观
我试图从给定的键数组中返回一个键值对数组:Javascript 具有给定键数组中的键/值对的对象数组&;价值观,javascript,arrays,Javascript,Arrays,我试图从给定的键数组中返回一个键值对数组:[{“a”:1},{“b”:2},{“c”:3}],[“a”,“b”,“c”]和一个值数组:[1,2,3] 我试过这个: let arr = [], obj = {}, key, val; const keyValuePairs = (k, v) => { if (k.length === v.length) { for (var i = 0; i < k.length; i++) { key = k[i]; val
[{“a”:1},{“b”:2},{“c”:3}]
,[“a”,“b”,“c”]
和一个值数组:[1,2,3]
我试过这个:
let arr = [], obj = {}, key, val;
const keyValuePairs = (k, v) => {
if (k.length === v.length) {
for (var i = 0; i < k.length; i++) {
key = k[i]; val = v[i];
arr[i] = {key: val};
}
} return arr;
};
keyValuePairs(["a", "b", "c"], [1, 2, 3]);
让arr=[],obj={},key,val;
常量keyValuePairs=(k,v)=>{
如果(k.length==v.length){
对于(变量i=0;i
但是它返回-[{key:1},{key:2},{key:3}]
我该怎么做呢?如果您的目标是一款足够新的浏览器,或者正在使用babel,那么有一种新的语法可以轻松做到这一点:
arr[i]={[key]:val}代码>
否则,您将需要使用多行来设置密钥
let arr = [], obj = {}, key, val;
const keyValuePairs = (k, v) => {
if (k.length === v.length) {
for (var i = 0; i < k.length; i++) {
key = k[i]; val = v[i];
var newObj = {};
newObj[key] = val;
arr[i] = newObj;
}
} return arr;
};
a=[“a”,“b”,“c”],b=[1,2,3]
c=a.map((k,i)=>({[k]:b[i]}))
console.log(JSON.stringify(c))
试试这个(简单的解决方案):
var-answer=keyValuePairs([“a”、“b”、“c”],[1,2,3]);
控制台日志(应答);
函数keyValuePairs(arrOne、arrTwo){
var returnArr=[];
对于(变量i=0;i
使用,您可以使用.map
或香草数组.prototype.map
在一行中执行此操作,并使用索引i
在数组中添加条带
var keys = 'abc'.split('');
var values = '123'.split('');
var result = _.map(keys, (key, i) => ( { [keys[i]] : values[i] } ) );
console.log(JSON.stringify(result));
收益率:
[{“a”:“1”},{“b”:“2”},{“c”:“3”}]
您还可以在尺寸上继续此模式:
var keys = 'abc'.split('');
var values = '123'.split('');
var valuesValues = 'xyz'.split('');
var result = _.map(keys, (key, i) => ( { [keys[i]] : { [ values[i] ]: valuesValues[i] } } ) );
console.log(JSON.stringify(result));
收益率:
您也可以根据需要使用reduce方法
请参见下面的示例
let key=[“a”、“b”、“c”],
值=[1,2,3],
result=keys.reduce((r,v,i)=>r.concat({[v]:value[i]}),[]);
控制台。日志(结果)代码>尝试更改arr[i]={key:val}
toarr[i]={[key]:val}代码>@Hasan-非常感谢。如果你要讨论这个新的语法,为什么不给出它的名字,甚至一个引用?是的,它非常冗长<代码>[key]
是这里的关键。谢谢。
var keys = 'abc'.split('');
var values = '123'.split('');
var valuesValues = 'xyz'.split('');
var result = _.map(keys, (key, i) => ( { [keys[i]] : { [ values[i] ]: valuesValues[i] } } ) );
console.log(JSON.stringify(result));