如何迭代对象数组并打印出其中一个属性

时间:2014-10-07 11:27:06

标签: javascript sharepoint jslink

我在sharepoint的显示模板中有以下代码,我有一个对象数组,我需要得到以下结果。

Name1
Name2
Name3

因此,我可以使用工具提示替换sharepoint多人用户字段的默认呈现。

但是,我不知道如何迭代然后连接:

截图: enter image description here

代码:

// List View - Substring Long String Sample 
// Muawiyah Shannak , @MuShannak 

(function () { 

    // Create object that have the context information about the field that we want to change it's output render  
    var projectTeamContext = {}; 
    projectTeamContext.Templates = {}; 
    projectTeamContext.Templates.Fields = { 
        // Apply the new rendering for Body field on list view 
        "Project_x0020_Team": { "View": ProjectTeamTemplate } 
    }; 

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(projectTeamContext); 

})(); 

// This function provides the rendering logic 
function ProjectTeamTemplate(ctx) { 

    var projectTeamValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; 

    //newBodyvalue should have the list of all display names and it will be rendered as a tooltip automaticlaly

    return "<span title='" + projectTeamValue + "'>" + newBodyValue + "</span>"; 

} 

1 个答案:

答案 0 :(得分:1)

你可以&#34;映射&#34;将projectTeamValue数组对象的属性值转换为新数组,然后&#34; join&#34;这些值一起使用(使用&#34;,&#34;作为此示例中的分隔符)一次性完成:

var newBodyValue = projectTeamValue.map(function(person) {
    return person.value;
}).join(", ");

如果您的projectTeamValue数组看起来像:

[{ value: "Name1" }, { value: "Name2" }, { value: "Name3" }]

然后newBodyValue将是:

"Name1, Name2, Name3"

附注:{8}在IE 8及以下版本中不可用,但应该可以在其他所有浏览器中使用。