如何在javascript中获取内部数组
我正在尝试从数组中获取所有内容。 这是通过如何在javascript中获取内部数组,javascript,arrays,Javascript,Arrays,我正在尝试从数组中获取所有内容。 这是通过innerHTML提取数据以显示的函数: window.location.href = 'gonative://contacts/getAll?callback=contacts_callback'; function contacts_callback(obj) { var contactinfo = obj.contacts.map(({givenName}) => givenName) + " " +
innerHTML
提取数据以显示的函数:
window.location.href = 'gonative://contacts/getAll?callback=contacts_callback';
function contacts_callback(obj) {
var contactinfo = obj.contacts.map(({givenName}) => givenName) + " " +
obj.contacts.map(({familyName}) => familyName) + " " + " (" +
obj.contacts.map(({organizationName}) => organizationName) + ") " +
obj.contacts.map(({phoneNumbers.phoneNumber}) => phoneNumbers.phoneNumber) + "<br>";
document.getElementById("demo").innerHTML = contactinfo;
}
我只想将结果列为:
John Appleseed(苹果)XXX-XXXXXXX约翰苹果色(苹果)XXX-XXXXXXX
很难给出答案,因为很难判断您的
电话号码
数组中可以包含哪些内容,以及您是否还会为该数组中的每个电话号码显示一行
我会这样做:
function contacts_callback(obj) {
let arrayContacts = [];
// Iterate over all your contacts
obj.contacts.forEach(item => {
// Iterate over each contact's phone numbers
item.phoneNumbers.forEach(phone => {
// Building your string with string interpolation and pushing to result array
// You could also add <br> or other tags needed here
arrayContacts.push(`${item.givenName} ${item.familyName} (${item.organizationName}) ${phone.phoneNumber}`);
});
});
// Return your array, use it in your innerHTNL, etc.
return arrayContacts;
}
function contacts\u回调(obj){
让arrayContacts=[];
//迭代所有联系人
obj.contacts.forEach(项目=>{
//反复查看每个联系人的电话号码
item.PhoneNumber.forEach(电话=>{
//使用字符串插值构建字符串并推送到结果数组
//您还可以在此处添加所需的
或其他标记
arrayContacts.push(`${item.givenName}${item.familyName}(${item.organizationName})${phone.phoneNumber}`);
});
});
//返回数组,在innerHTNL中使用它,等等。
返回arrayContacts;
}
如果您的obj被称为“obj”,则:
此代码将返回您询问的一系列信息,但如果用户有一个以上的电话号码,则只会从列表中选择第一个两个问题:
- 您将显示所有给定的名称,然后显示所有的姓氏等,每个都有一个单独的
调用。相反,只对数组执行一个.map()
调用,然后显示每个迭代对象的属性.map()
不是正确的引用phoneNumber。phoneNumber
是一个数组,因此应该迭代它phoneNumbers
- 模板文本可能使构建字符串更容易一些
- 您可以使用
将行与换行符粘合在一起.join(
”)
function contacts\u回调(obj){
var contactinfo=obj.contacts.map(o=>
`${o.givenName}${o.familyName}(${o.organizationName})${
o、 phoneNumber.map(n=>n.phoneNumber)
}`)
.加入(“
”);
document.getElementById(“demo”).innerHTML=contactinfo;
}
//演示
var obj={“success”:true,“contacts”:[{“emailaddress”:[],“phoneNumber”:[{“label”:“unknown”,“phoneNumber”:“XXX-XXXXXXX”}],“givenName”:“John”,“organizationName”:“Apple”,“familyName”:“Appleseed”,{“emailaddress”:[],“phoneNumber”:[{“label”:“unknown”,“phoneNumber”:“XXX-XXXXXXX”}],“givenName”:“John”,“organizationName”:“Apple”,“familyName”:“Apple”,“familyName”:“苹果色”,},]};
联系人(obj);
电话号码是一个数组。一个人在该数组中可以有多个电话号码吗?然后会发生什么?
function contacts_callback(obj) {
let arrayContacts = [];
// Iterate over all your contacts
obj.contacts.forEach(item => {
// Iterate over each contact's phone numbers
item.phoneNumbers.forEach(phone => {
// Building your string with string interpolation and pushing to result array
// You could also add <br> or other tags needed here
arrayContacts.push(`${item.givenName} ${item.familyName} (${item.organizationName}) ${phone.phoneNumber}`);
});
});
// Return your array, use it in your innerHTNL, etc.
return arrayContacts;
}
const result = obj.contacts.map(contact =>{
return `${contact.givenName} ${contact.familyName} (${contact.organizationName}) ${contact.phoneNumbers[0].phoneNumber}`
}