我有一个东西,像这样
var obj = {
page: 6,
total: 12,
data: [
{
id: 1,
email: "lawson@mail.com",
last_name: "Larsen",
},
{
id: 2,
email: "howell@mail.com",
last_name: "Holl",
},
],
ad: {
company: "Weekly",
},
};
我要修改此请求对象,其中包含电子邮件字段。我试图做这样的事
var i = obj.data.length;
while (i--) {
console.log(obj.data.hasOwnProperty("email"));
}
但这并不能使我返回真
答案 0 :(得分:0)
您可以执行此操作以检查数据数组中是否存在电子邮件属性。
obj.data.some((obj)=>hasOwnProperty('email'))
答案 1 :(得分:0)
要使其正常工作,您必须遍历数组或访问某些数组索引。
您的代码应为:
$i
请注意零索引访问。
答案 2 :(得分:0)
您需要使用索引访问数据中的每个对象。
while (i--) {
console.log(obj.data[i].hasOwnProperty('email'));
}
答案 3 :(得分:0)
考虑“数据”是一个数组,我们可以使用 foreach 遍历数据集,然后找到“电子邮件”属性
var obj = {
page: 6,
total: 12,
data: [
{
id: 1,
email: "lawson@mail.com",
last_name: "Larsen",
},
{
id: 2,
email: "howell@mail.com",
last_name: "Holl",
},
],
ad: {
company: "Weekly",
},
};
obj.data.forEach(data => {
console.log(data.hasOwnProperty('email'))
})
答案 4 :(得分:0)
// Check all using loop For Each
obj.data.forEach( (item) => console.log( item.hasOwnProperty('email') ) );
// Check whether some objects in data have property 'email'
console.log( obj.data.some( (item) => item.hasOwnProperty('email') ) );
// Check whether every objects in data have property 'email'
console.log( obj.data.every( (item) => item.hasOwnProperty('email') ) );
答案 5 :(得分:0)
为此目的有一种特殊的数组方法。 every
const response = {
page: 6,
total: 12,
data: [
{
id: 1,
email: "lawson@mail.com",
last_name: "Larsen",
},
{
id: 2,
email: "howell@mail.com",
last_name: "Holl",
},
],
ad: {
company: "Weekly",
},
};
const hasEmail = (item) => Boolean(item.email);
const everyItemHasEmail = response.data.every(hasEmail);
console.log(everyItemHasEmail)