【问题标题】:Cloning values of keys in JavascriptJavascript中键的克隆值
【发布时间】:2013-07-08 11:12:06
【问题描述】:

我有一个数组(tlist),其中的键与数组链接:

tliste.push({"GROUP104":["321992","322052","321812","314022","0"]});
tliste.push({"GROUP108":["322011","322032","0"]});
tliste.push({"GROUP111":["322020","322021","322040","322041","313060","313072","0"]});

我现在需要构建一个函数来获取例如Group104 和 Group111 并将它们克隆到一个新数组中:

newarrray = ["321992","322052","321812","314022","0","322020","322021","322040","322041","313060","313072","0"]

最好对新数组进行排序,并删除“0” - 但它的重要性较低。

【问题讨论】:

  • 你有什么问题?你尝试了什么?
  • Array.push 是一个函数。你应该使用tliste.push({"GROUP...
  • 那么您正在寻找如何合并数组? stackoverflow.com/questions/1584370/…
  • 基本上,我不确定如何从键中提取值并将它们移动到新数组中。
  • @FelixKling - 克隆数组是其中的一部分 - 另一部分是从密钥中提取数组 - 试图在没有太多运气的情况下使用谷歌搜索。

标签: javascript arrays key clone


【解决方案1】:

设要提取的组为grp[]。

你可以这样做 -

// Extract groups in grp[] from origArray[]
var extractGrps = function(grps, origArray) {
    var result = [];
    for(var i =0; i<grps.length; i+=1) {
        var indxInOrigArray = indexOfObjectWithKey(origArray, grps[i]);
        if(indxInOrigArray > 0) {
            var arrLocal = origArray[indxInOrigArray].grps[i];
            for(var j=0; j<arrLocal.length;j+=1)
                result.push(arrLocal[j]);
        }
    }
    return result;
}

//find Index of object in arr whose key matches the given input key
var indexOfObjectWithKey = function(arr, key) {
    for(var i=0; i<arr.length; i+=1) {
        if(arr[i].key) {
            return i;
        }
    }
return -1;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2010-10-19
    • 2012-05-07
    • 1970-01-01
    • 2013-01-03
    • 2015-02-12
    相关资源
    最近更新 更多