有没有办法按特定顺序从数组中构建字符串?

时间:2016-09-15 17:48:36

标签: javascript arrays string loops

我很好奇是否有一种方法可以按特定顺序从数组中构建字符串。到目前为止我的代码:

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;

如果不可能,那就太好了,谢谢

3 个答案:

答案 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替换参数。

稍后您可以映射字符串的字符,这里使用的字符代替带字母的数组。

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分:0)

这样做的一种方法是

&#13;
&#13;
@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;
&#13;
&#13;