我很好奇是否有一种方法可以按特定顺序从数组中构建字符串。到目前为止我的代码:
var pcontent = [ "h", "H", "o", " " ];
var constpass = strConstruct( "pcontent", 1, 2, 3, 0, 2, 3, 0, 2);
function strConstruct ( aname ) {
var newStrs = arguments;
var cs;
for ( var i = 1; i < newStrs.length; i++ ) {
cs = cs + aname[i];
}
return cs;
}
console.log( constpass );
运行它后,我得到&#34; contentundefinedcontent&#34;
如果不可能,那就太好了,谢谢
答案 0 :(得分:3)
只是几个小错误
您需要将变量pcontent
传递给strConstruct
而不是字符串"pcontent"
而aname[newStrs[i]]
代替aname[i]
将cs
初始化为空字符串var cs = ""
var pcontent = ["h", "H", "o", " "];
var constpass = strConstruct(pcontent, 1, 2, 3, 0, 2, 3, 0, 2);
function strConstruct(aname) {
var newStrs = arguments;
var cs = "";
for (var i = 1; i < newStrs.length; i++) {
cs = cs + aname[newStrs[i]];
}
return cs;
}
console.log(constpass);
答案 1 :(得分:1)
您可以使用rest operator替换参数。
稍后您可以映射字符串的字符,这里使用的字符代替带字母的数组。
function strConstruct(string, ...indices) {
return indices.map(i => string[i]).join('');
}
var constpass = strConstruct("hHo ", 1, 2, 3, 0, 2, 3, 0, 2);
console.log(constpass);
&#13;
答案 2 :(得分:0)
这样做的一种方法是
@objc func controllerDidChangeContent(controller: NSFetchedResultsController) {
tableView.endUpdates() // Only needed if you're calling tableView.beginUpdates() in controllerWillChangeContent.
if controller.fetchRequest.fetchLimit > 0 && controller.fetchRequest.fetchLimit < controller.fetchedObjects?.count {
controller.performFetch()
// Reload the table view section here
}
}
}
&#13;