相关疑难解决方法(0)

递归循环遍历对象以构建属性列表

情况:我有一个包含多个子和子子对象的大对象,其属性包含多种数据类型.出于我们的目的,此对象看起来像这样:

var object = {
    aProperty: {
        aSetting1: 1,
        aSetting2: 2,
        aSetting3: 3,
        aSetting4: 4,
        aSetting5: 5
    },
    bProperty: {
        bSetting1: {
            bPropertySubSetting : true
        },
        bSetting2: "bString"
    },
    cProperty: {
        cSetting: "cString"
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要循环遍历此对象并构建显示层次结构的键列表,因此列表最终看起来像这样:

aProperty.aSetting1
aProperty.aSetting2
aProperty.aSetting3
aProperty.aSetting4
aProperty.aSetting5
bProperty.bSetting1.bPropertySubSetting
bProperty.bSetting2
cProperty.cSetting
Run Code Online (Sandbox Code Playgroud)

我有这个函数,它循环遍历对象并吐出密钥,但不是分层次的:

function iterate(obj) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property]);
            }
            else {
                console.log(property + "   " + obj[property]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我怎么做吗?这里有一个jsfiddle让你搞砸:http: …

javascript object

50
推荐指数
5
解决办法
7万
查看次数

将键数组和值数组合并到Javascript中的对象中

我有:

var keys = [ "height", "width" ];
var values = [ "12px", "24px" ];
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这个对象:

{ height: "12px", width: "24px" }
Run Code Online (Sandbox Code Playgroud)

在Python中,有一个简单的习语dict(zip(keys,values)).在jQuery或普通的Javascript中是否有类似的东西,或者我必须做很长的事情吗?

javascript idioms

25
推荐指数
6
解决办法
2万
查看次数

从两个数组创建对象

如何在不使用javascript循环的情况下从两个数组创建对象.

例:

array1 =  [1,2,3,4,5];
array2 = [A,B,C,D,E];
Run Code Online (Sandbox Code Playgroud)

我想从下面的对象

obj = {
'1': 'A',
'2': 'B',
'3': 'C',
'4': 'D',
'5': 'E',
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

javascript jquery

4
推荐指数
2
解决办法
3573
查看次数

用于创建JSON对象的Javascript递归

需要一些关于如何正确递归地做这些建议的建议.

基本上我正在做的是进入一堆文本并将其作为JSON返回.

例如:

文本:

q
b
name:rawr
Run Code Online (Sandbox Code Playgroud)

返回:

[
  "q",
  "b",
  {
    "name": "rawr"
  }
]
Run Code Online (Sandbox Code Playgroud)

以下输入:

q
b
name:rawr:awesome
Run Code Online (Sandbox Code Playgroud)

会返回(输出格式不重要):

[
  "q",
  "b",
  {
    "name": {
        "rawr": "awesome"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

如何修改以下代码以允许以递归方式在对象中包含对象.

var jsonify = function(input){
  var listItems = input, myArray = [], end = [], i, item;

  var items = listItems.split('\r\n');

  // Loop through all the items
  for(i = 0; i < items.length; i++){

    item = items[i].split(':');

    // If there is a value, then split it to create …
Run Code Online (Sandbox Code Playgroud)

javascript

3
推荐指数
1
解决办法
4774
查看次数

根据数字数组对字符串数组进行排序:另一个版本(不重复!!)

我知道我上传了一个类似的问题,但我的意图在这里不同,所以这不是一个重复的问题。

我想根据另一个数字数组对数组进行排序。更具体地说,如果 1 是数字数组的第 n 个元素,我想重新排列目标数组,以便原始数组中的第 n 个元素是第一个元素,依此类推。例如;

    //Case 1
    const input = ["a", "b", "c", "d", "e"];
    const order = [2, 4, 5, 1, 3];

    intended_result: ["d", "a", "e", "b", "c"];

    //Case 2
    const input = ["a", "b", "c", "d", "e"];
    const order = [3, 1, 4, 5, 2];

    intended_result: ["b", "e", "a", "c", "d"];
Run Code Online (Sandbox Code Playgroud)

执行上述操作的 Javascript 代码是什么?有什么建议吗?

非常感谢!

javascript arrays sorting

2
推荐指数
1
解决办法
48
查看次数

Zip数组作为对象的键和值

我有这些数据

 var foo = ['US','MX','NZ'];
 var foo1 = [12',13',17];


 var Object = {};
Run Code Online (Sandbox Code Playgroud)

我试过这个东西

 var Object = {foo:foo1}
Run Code Online (Sandbox Code Playgroud)

但是当我使用alert(JSON.stringify(Object))排列对象时,它无法正常工作; 我看见:

 {"foo":["12","13","17"]}
Run Code Online (Sandbox Code Playgroud)

我想要的是让它像这样:

var Object = {
  "US":"12",
  "MX":"13",
  "NZ":17
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让它看起来像这样吗?

javascript jquery

1
推荐指数
2
解决办法
373
查看次数

如何将2个数组合并为1个对象javascript

我有2个数组,我想"减少"到1个对象.

例如:

我有..

var originalData = [1,2,3];

var newData = [3,1,2];
Run Code Online (Sandbox Code Playgroud)

我想将这两个数组组合成一个如下所示的对象:

var newOrderObject = {1:3, 2:1, 3:2};
Run Code Online (Sandbox Code Playgroud)

即时通讯使用reduce函数,但它似乎是以不同的方式映射它们

var newOrderObject = originalData.reduce(function(newData) {
  var orderObject = {};
  originalData = newData;
  return orderObject;
}, {});
Run Code Online (Sandbox Code Playgroud)

任何建议都会被认可

javascript arrays reduce

1
推荐指数
1
解决办法
364
查看次数

如何将两个数组合并为一个对象?

我有两个长度相同的数组。

array1 = ['title', 'details', 'price', 'discount'];
array2 = ['product name', 'product details', 200, 20];
Run Code Online (Sandbox Code Playgroud)

想要将它们转换为一个对象,如下所示

newObject = {
  title: 'product name',
  details: 'product details',
  price: 200,
  discount: 20
}
Run Code Online (Sandbox Code Playgroud)

怎么做?

javascript

1
推荐指数
1
解决办法
39
查看次数

如何在 JavaScript 中使用两个数组创建键值对?

我有两个数组,keyscommonkeys.

我想使用这两个数组创建一个键值对,输出应该像langKeys.

怎么做?

这是数组一:

var keys=['en_US','es_ES', 'pt_PT','fr_FR','de_DE','ja_JP','it_IT']
Run Code Online (Sandbox Code Playgroud)

这是数组二:

var commonKeys=['en-*','es-*', 'pt-*','fr-*','de-*','ja-*','it-*', '*']
Run Code Online (Sandbox Code Playgroud)

这是我需要的输出:

var langKeys = {
    'en-*': 'en_US',
    'es-*': 'es_ES',
    'pt-*': 'pt_PT',
    'fr-*': 'fr_FR',
    'de-*': 'de_DE',
    'ja-*': 'ja_JP',
    'it-*': 'it_IT',
    '*': 'en_US'
};
Run Code Online (Sandbox Code Playgroud)

javascript keyvaluepair

-3
推荐指数
2
解决办法
7089
查看次数

标签 统计

javascript ×9

arrays ×2

jquery ×2

idioms ×1

keyvaluepair ×1

object ×1

reduce ×1

sorting ×1