将 dict 的所有值放入一个数组中
Put all values of dict in an array
我正在寻找按键提取 dict 值,并且我尝试使用 concat() 函数将这些值添加到一个空数组中,但是它正在打印这些值,但在它们自己的数组中(至少看起来这样,因为每个值都被独特的括号组包围)。
var dict = {Name: 'Chris', Height: 150, Location: 'New York'};
var dictVal = new Array();
for (var key in dict) {
var val = dict[key];
console.log(dictVal.concat(val));
}
如何合并值,使它们位于自己的一组括号内以表示 dictVal
中的值列表?
您可以在现代浏览器中进行如下操作;
var dict = {Name: 'Chris', Height: 150, Location: 'New York'},
dictValues = Object.values(dict);
console.log(dictValues);
你犯的错误是 Array.concat
returns 一个新数组意味着
dictVal = dictVal.concat(val);
是你想要的,以获得你想要的结果。或者你也可以做
for (var key in dict) {
var val = dict[key];
dictVal.push(val);
console.log(dictVal);
}
如果您不想生成新数组。
此外,还有更好的方法来完成您想要的操作,例如将对象的键映射到值:
var dict = {Name: 'Chris', Height: 150, Location: 'New York'};
var dictVal = Object.keys(dict).map(key => dict[key]);
遍历 Object.keys
通常比 for...in
更可取,因为
The Object.keys() method returns an array of a given object's own enumerable properties, in the same order as that provided by a for...in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).
和Array.map
只是为您节省了几行代码。
另外,使用 new Array()
作为旁注通常不常见。你想做
var dictVal = []
只是为了更好地符合常见的 JS 约定。
我正在寻找按键提取 dict 值,并且我尝试使用 concat() 函数将这些值添加到一个空数组中,但是它正在打印这些值,但在它们自己的数组中(至少看起来这样,因为每个值都被独特的括号组包围)。
var dict = {Name: 'Chris', Height: 150, Location: 'New York'};
var dictVal = new Array();
for (var key in dict) {
var val = dict[key];
console.log(dictVal.concat(val));
}
如何合并值,使它们位于自己的一组括号内以表示 dictVal
中的值列表?
您可以在现代浏览器中进行如下操作;
var dict = {Name: 'Chris', Height: 150, Location: 'New York'},
dictValues = Object.values(dict);
console.log(dictValues);
你犯的错误是 Array.concat
returns 一个新数组意味着
dictVal = dictVal.concat(val);
是你想要的,以获得你想要的结果。或者你也可以做
for (var key in dict) {
var val = dict[key];
dictVal.push(val);
console.log(dictVal);
}
如果您不想生成新数组。
此外,还有更好的方法来完成您想要的操作,例如将对象的键映射到值:
var dict = {Name: 'Chris', Height: 150, Location: 'New York'};
var dictVal = Object.keys(dict).map(key => dict[key]);
遍历 Object.keys
通常比 for...in
更可取,因为
The Object.keys() method returns an array of a given object's own enumerable properties, in the same order as that provided by a for...in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).
和Array.map
只是为您节省了几行代码。
另外,使用 new Array()
作为旁注通常不常见。你想做
var dictVal = []
只是为了更好地符合常见的 JS 约定。