通过JavaScript正确解释JSON数组
目前能够通过“团队”进行筛选,并说它是否匹配x,然后显示与之相关的所有内容。问题是通过硬代码搜索团队类别名称的方法,但需要它能够以编程方式为每个唯一的团队类型排序 正如您在下面所看到的,我的解决方案需要三个语句,而它只能包含在一个面向对象的方法中通过JavaScript正确解释JSON数组,javascript,arrays,json,Javascript,Arrays,Json,目前能够通过“团队”进行筛选,并说它是否匹配x,然后显示与之相关的所有内容。问题是通过硬代码搜索团队类别名称的方法,但需要它能够以编程方式为每个唯一的团队类型排序 正如您在下面所看到的,我的解决方案需要三个语句,而它只能包含在一个面向对象的方法中 $('#jobs-container .jobs-list').append( '<div id="teamtop"><span>Legal</span></div>'); for (i = 0;
$('#jobs-container .jobs-list').append(
'<div id="teamtop"><span>Legal</span></div>');
for (i = 0; i < _data.length; i++) {
for (j = 0; j < _data[i].postings.length; j++) {
var posting = _data[i].postings[j]
var title = posting.text
var description = posting.description
//Making each job description shorter than 250 characters
var shortDescription = $.trim(description).substring(0, 250)
.replace('\n', ' ') + "...";
var location = nullCheck(posting.categories.location);
var locationCleanString = cleanString(location);
var commitment = nullCheck(posting.categories.commitment);
var commitmentCleanString = cleanString(commitment);
var team = nullCheck(posting.categories.team);
var teamCleanString = cleanString(team);
var link = posting.hostedUrl + leverParameter;
if (team == "Legal") {
$('#jobs-container .jobs-list').append(
'<div class="job ' + teamCleanString + ' ' + locationCleanString + ' ' + commitmentCleanString + '">' +
'<a class="job-title" href="' + link + '"">' + title + '</a>' +
'</div>'
);
}
}
}
$('#jobs-container .jobs-list').append(
'<div id="teamtop"><span>Engineering</span></div>');
for (i = 0; i < _data.length; i++) {
for (j = 0; j < _data[i].postings.length; j++) {
var posting = _data[i].postings[j]
var title = posting.text
var description = posting.description
//Making each job description shorter than 250 characters
var shortDescription = $.trim(description).substring(0, 250)
.replace('\n', ' ') + "...";
var location = nullCheck(posting.categories.location);
var locationCleanString = cleanString(location);
var commitment = nullCheck(posting.categories.commitment);
var commitmentCleanString = cleanString(commitment);
var team = nullCheck(posting.categories.team);
var teamCleanString = cleanString(team);
var link = posting.hostedUrl + leverParameter;
if (team == "Engineering") {
$('#jobs-container .jobs-list').append(
'<div class="job ' + teamCleanString + ' ' + locationCleanString + ' ' + commitmentCleanString + '">' +
'<a class="job-title" href="' + link + '"">' + title + '</a>' +
'</div>'
);
}
}
}
$('#jobs-container .jobs-list').append(
'<div id="teamtop"><span>Operations</span></div>');
for (i = 0; i < _data.length; i++) {
for (j = 0; j < _data[i].postings.length; j++) {
var posting = _data[i].postings[j]
var title = posting.text
var description = posting.description
//Making each job description shorter than 250 characters
var shortDescription = $.trim(description).substring(0, 250)
.replace('\n', ' ') + "...";
var location = nullCheck(posting.categories.location);
var locationCleanString = cleanString(location);
var commitment = nullCheck(posting.categories.commitment);
var commitmentCleanString = cleanString(commitment);
var team = nullCheck(posting.categories.team);
var teamCleanString = cleanString(team);
var link = posting.hostedUrl + leverParameter;
if (team == "Operations") {
$('#jobs-container .jobs-list').append(
'<div class="job ' + teamCleanString + ' ' + locationCleanString + ' ' + commitmentCleanString + '">' +
'<a class="job-title" href="' + link + '"">' + title + '</a>' +
'</div>'
);
}
}
}
但我们正在手动匹配到legal,只想通过每个团队进行筛选并查看
Vngeener回答每次重复团队,只需将团队打印一次。- 您实际上不需要手动创建“Teamtop”div
- 您创建的for循环应该能够处理这个问题李>
- 对于每个团队标题,您不需要重复的for循环代码
- 循环中不需要“团队”条件
var teamAdded=[];
对于(i=0;i<\u data.length;i++){
对于(j=0;j<_数据[i].postings.length;j++){
var过账=_数据[i]。过账[j]
var title=posting.text
var description=posting.description
//使每个职位描述少于250个字符
var shortDescription=$.trim(description).substring(0250)
.替换('\n','')+“…”;
变量位置=空检查(过帐.类别.位置);
var locationCleanString=cleanString(位置);
var承诺=空支票(过账.类别.承诺);
var commitmentCleanString=cleanString(承诺);
var team=nullCheck(posting.categories.team);
var teamCleanString=cleanString(团队);
var link=posting.hostedUrl+leverParameter;
//动态添加团队顶部标题
如果(!teamAdded[团队]){
$('#jobs container.jobs list')。追加(
''+团队+'';
teamAdded[team]=true;
}
//这里不需要团队条件
//如果(团队==“法律”){
$(“[data team=“”+team+“]”)。追加(
'' +
'' +
''
);
}
}
也许你应该先将数据过滤到合适的职业类别集合中,然后再装配一些复杂的条件。这真的没有什么帮助。我没有确切的解决方案,但有一个代码增强建议。要使代码运行更快,占用更少的内存,请在循环外声明变量,然后在循环中分配值.V8引擎将非常感谢。每次重复团队,只需将团队打印一次。是否有方法将团队名称放入循环中,然后仅在更新逻辑后应用它们,只添加一次团队标题,并为每个团队子链接添加一个新容器。优秀的vgner
for(i = 0; i < team.length; i++) {
alert ("output only teams once"+team);
}
Legal
Corporate Associate
Corporate Paralegal
Junior Corporate Associate, Blockchain
Junior Corporate Associate, Emerging Growth
Legal Document Specialist
Regulatory & Compliance Counsel
var teamAdded = [];
for(i = 0; i < _data.length; i++) {
for (j = 0; j < _data[i].postings.length; j ++) {
var posting = _data[i].postings[j]
var title = posting.text
var description = posting.description
//Making each job description shorter than 250 characters
var shortDescription = $.trim(description).substring(0, 250)
.replace('\n', ' ') + "...";
var location = nullCheck(posting.categories.location);
var locationCleanString = cleanString(location);
var commitment = nullCheck(posting.categories.commitment);
var commitmentCleanString = cleanString(commitment);
var team = nullCheck(posting.categories.team);
var teamCleanString = cleanString(team);
var link = posting.hostedUrl+leverParameter;
//Add Team top heading dynamically
if (!teamAdded[team]){
$('#jobs-container .jobs-list').append(
'<div id="teamtop"><span>'+ team +'</span></div><div id="team-children" data-team="'+ team +'"></div>');
teamAdded[team] = true;
}
// team condition was not required here
// if(team=="Legal"){
$('[data-team="'+ team +'"]').append(
'<div class="job '+teamCleanString+' '+locationCleanString+' '+commitmentCleanString+'">' +
'<a class="job-title" href="'+link+'"">'+title+'</a>' +
'</div>'
);
}
}