我有一个如下所示的数组。现在,我想通过循环获取“名称”键的所有值。如何获得?
我尝试过。但是我无法得到正确的结果
dangle= [[{name:"jack",age:"20"}],
[{name:"ram",age:"25"}],
[{name:"vishy",age:"45"}]]
我期望“ jack”,“ ram”,“ vishy”。但是它显示第一个索引值,例如“ jack”,“ 20”。下面附上我尝试过的代码。给我一个建议以获得正确的输出。谢谢
这是我的代码
for(i=0;i<dangle.length;i++)
{
alert(dangle[i]);
}
答案 0 :(得分:0)
有很多方法可以遍历数组。一种使用for
循环的常见方式。 for循环可以有很多变体:
标准for
循环(遍历数字,其中i
是每个数字):
for(let i = 0; i < dangle.length; i++) { // loop through the dangle array
let arr = dangle[i]; // get each inner array from index `i`
for(let j = 0; j < arr.length; j++) { // loop through the inner array
console.log(arr[j].name); // print the name of each object
}
}
let dangle = [[{name:"jack",age:"20"}], [{name:"ram",age:"25"}],[{name:"vishy",age:"45"}]];
for (let i = 0; i < dangle.length; i++) {
let arr = dangle[i];
for (let j = 0; j < arr.length; j++) {
console.log(arr[j].name);
}
}
for of
循环(遍历数组元素,其中arr
是元素):
for(let arr of dangle) { // get each inner array in dangle (current inner array is referenced as arr)
for(let obj of arr) { // loop through the contents in the current inner array, where obj is the contents
console.log(obj.name); // print the name of the contents
}
}
let dangle = [[{name:"jack",age:"20"}],[{name:"ram",age:"25"}],[{name:"vishy",age:"45"}]];
for(let arr of dangle) {
for(let obj of arr) {
console.log(obj.name);
}
}
.forEach
高阶函数(遍历数组元素,其中arr
是每个数组中的元素)
dangle.forEach(arr => arr.forEach(obj => {
console.log(obj.name);
}));
let dangle = [[{name:"jack",age:"20"}],[{name:"ram",age:"25"}], [{name:"vishy",age:"45"}]];
dangle.forEach(arr => arr.forEach(obj => { // loop through the outer array to access each inner array, loop through each inner array
console.log(obj.name); // print the objects name retrieved from the inner array
}));
通知:在以上示例中,我使用了2个循环。这样做的原因是因为您有一个二维数组(另一个数组中的一个数组)。这意味着外部for循环用于访问每个内部数组。然后,内部for循环遍历每个内部数组中的元素(在您的情况下为对象)。由于每个内部数组中只有一个对象,因此可以删除内部for循环,并且可以访问每个内部数组的0th
索引。但是,出于可扩展性和可维护性的目的,我使用了一个内部for循环,这样,如果您确实有多个对象,则仍然可以使用
因此,您可以使用以下其中一种for循环使用您的姓名填充空数组:
let names = [];
for(let arr of dangle) {
for(let obj of arr) {
names.push(obj.name); // add the name to the names array
}
}
console.log(names);
let dangle= [[{name:"jack",age:"20"}], [{name:"ram",age:"25"}], [{name:"vishy",age:"45"}]]
let names = [];
for(let arr of dangle) {
for(let obj of arr) {
names.push(obj.name); // add the name to the names array
}
}
console.log(names);
答案 1 :(得分:-1)
您只能使用.map()
和.concat()
来获取名称数组:
const data = [
[{name:"jack",age:"20"}],
[{name:"ram",age:"25"}],
[{name:"vishy",age:"45"}]
];
const result = [].concat(...data).map(({ name }) => name);
console.log(result);