如果我有一个数组,其中有 2 个对象都具有相同的键名并且只想打印一个键的值
if i had an array in which i had 2 objects both had same key name and only want to print the value of one key
我正在学习 JavaScript 并坚持这个问题,如果我有一个数组,其中有 2 个这样的对象 -
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
for (let data of datas){
console.log(data.age)
}
以及我打印 age 时的输出 - 39 40
我怎样才能只打印一个值,比如只打印一个值 console.log() 只打印母亲的年龄值
我试图在 google 上找到它,但没有人能提供帮助,如果你能提供帮助,这对我来说意义重大
首先你应该过滤掉你想要得到的值。
使用过滤方法。
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
datas.filter(data=>data.name === "Mother").forEach(data=>console.log(data));
欢迎来到 JavaScript。
for (let data of datas)
这实际上在javascript中称为for..of
循环。这负责遍历数组。因此,您将使用 data
变量获取每个对象。
现在 for..of
循环遍历数组的每个元素,因此,如果您只需要从中获取一个可能的值,那么您必须在此处使用 if
条件。
你的情况-
for (let data of datas) {
if (data.name === 'Mother') {
console.log(data.age);
}
}
请注意,如果您只需要母亲的年龄,那么您也可以使用 break
关键字来跳出循环。
for (let data of datas) {
if (data.name === 'Mother') {
console.log(data.age);
break;
//--^^^^^^--------
}
}
只需要添加一个条件,比如:
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
for (let data of datas) {
if (data.name === "Mother") {
console.log(data.age)
}
}
或者您可以在数组中搜索必要的对象,然后打印它的 age
属性:
const mother = datas.find(obj => obj.name === "Mother");
console.log(mother.age);
祝你好运!
const data = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
let res = data.find(item => item.name === 'Mother')
console.log(res)
选项A:你要做的是如果你不知道Mother的位置,询问数组中的每个名字键直到匹配,然后如果你匹配到,就捕获值并打印它:
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
var mothersAge=0;
for (let data of datas){
if(data.name==="Mother") mothersAge=data.age;
}
console.log(mothersAge);
选项 B:您只需使用一个代码行即可完成所有操作,使用“.find()”将找到第一个满足您输入的条件的元素:
var mom=datas.find(elem => elem.name==="Mother");
console.log(mom.age);
或:
console.log(datas.find(elem => elem.name==="Mother").age);
另一种方法是使用过滤器 returns 一个数组,其中包含与您放置的条件的所有匹配项。您使用 .pop() 获取最后一个匹配项或 .shift() 获取第一个(这两个选项将结果数组的元素移除到过滤器):
var mom=datas.filter(elem => elem.name==="Mother").shift();
console.log(mom.age);
我正在学习 JavaScript 并坚持这个问题,如果我有一个数组,其中有 2 个这样的对象 -
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
for (let data of datas){
console.log(data.age)
}
以及我打印 age 时的输出 - 39 40
我怎样才能只打印一个值,比如只打印一个值 console.log() 只打印母亲的年龄值
我试图在 google 上找到它,但没有人能提供帮助,如果你能提供帮助,这对我来说意义重大
首先你应该过滤掉你想要得到的值。 使用过滤方法。
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
datas.filter(data=>data.name === "Mother").forEach(data=>console.log(data));
欢迎来到 JavaScript。
for (let data of datas)
这实际上在javascript中称为for..of
循环。这负责遍历数组。因此,您将使用 data
变量获取每个对象。
现在 for..of
循环遍历数组的每个元素,因此,如果您只需要从中获取一个可能的值,那么您必须在此处使用 if
条件。
你的情况-
for (let data of datas) {
if (data.name === 'Mother') {
console.log(data.age);
}
}
请注意,如果您只需要母亲的年龄,那么您也可以使用 break
关键字来跳出循环。
for (let data of datas) {
if (data.name === 'Mother') {
console.log(data.age);
break;
//--^^^^^^--------
}
}
只需要添加一个条件,比如:
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
for (let data of datas) {
if (data.name === "Mother") {
console.log(data.age)
}
}
或者您可以在数组中搜索必要的对象,然后打印它的 age
属性:
const mother = datas.find(obj => obj.name === "Mother");
console.log(mother.age);
祝你好运!
const data = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
let res = data.find(item => item.name === 'Mother')
console.log(res)
选项A:你要做的是如果你不知道Mother的位置,询问数组中的每个名字键直到匹配,然后如果你匹配到,就捕获值并打印它:
const datas = [{name: "Father", age: 39}, {name: "Mother", age: 40}]
var mothersAge=0;
for (let data of datas){
if(data.name==="Mother") mothersAge=data.age;
}
console.log(mothersAge);
选项 B:您只需使用一个代码行即可完成所有操作,使用“.find()”将找到第一个满足您输入的条件的元素:
var mom=datas.find(elem => elem.name==="Mother");
console.log(mom.age);
或:
console.log(datas.find(elem => elem.name==="Mother").age);
另一种方法是使用过滤器 returns 一个数组,其中包含与您放置的条件的所有匹配项。您使用 .pop() 获取最后一个匹配项或 .shift() 获取第一个(这两个选项将结果数组的元素移除到过滤器):
var mom=datas.filter(elem => elem.name==="Mother").shift();
console.log(mom.age);