Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript创建对象属性值数组_Javascript_Node.js - Fatal编程技术网

Javascript创建对象属性值数组

Javascript创建对象属性值数组,javascript,node.js,Javascript,Node.js,给定Javascript中的这个对象 { "0": "hello", "1": { text: "world" } } 从该对象创建此数组的最短方法是什么 [ "hello", { text: "world" } ] 我见过有人使用Array.prototype.splice(theObject),但它似乎不适合我 更新: 输出的顺序需要得到保证 0和1可以是任意字符串值,并且需要在相应数组中维护属性级别的顺序 需要使用Node.js 6 只需使用Object.values:

给定Javascript中的这个对象

{
  "0": "hello",
  "1": { text: "world" }
}
从该对象创建此数组的最短方法是什么

[
  "hello",
  { text: "world" }
]
我见过有人使用
Array.prototype.splice(theObject)
,但它似乎不适合我

更新:

  • 输出的顺序需要得到保证
  • 0
    1
    可以是任意字符串值,并且需要在相应数组中维护属性级别的顺序
  • 需要使用Node.js 6

  • 只需使用Object.values:

    console.log(Object.values({
    “0”:“你好”,
    “1:{案文:“世界”}
    
    }));如果要确保对象的原始关键帧与结果数组中的位置相对应,则不能依赖
    对象.values()
    来获取。。。在
    循环中。您可以使用
    Object.keys()
    对该数组进行排序

    var keys = Object.keys(yourObject);
    keys.sort();
    var array = keys.map(key => yourObject[key]);
    
    现在了解对
    .sort()
    的调用可以包括一个comparator函数,用于对原始对象键施加所需的任何顺序。OP中的示例非常简单,上面的方法也可以。但是,更复杂的键可能需要自定义比较器

    让src={
    “0”:“你好”,
    "1": {
    案文:“世界”
    }
    }
    让res=[src].map(it=>[it['0'],it['1']]
    
    console.log(res)
    尝试在循环中使用for..in,如下所示:

    let obj = {
      "0": "hello",
      "1": { text: "world" }
       }
      let result = []
      for(var value in obj){
         result.push(obj[value])
       }
    

    这应根据键维护顺序,包括键有多个数字的情况

    const测试={
    “0”:“你好”,
    "三":"三",,
    “1”:{案文:“世界”},
    "二":"二",,
    “11”:“11”,
    }
    const transform=obj=>Object.keys(obj)
    .sort((a,b)=>parseInt(a)>parseInt(b)?1:-1)
    .map(key=>obj[key])
    
    console.dir(transform(test))
    这会起作用,但它不能保证
    “hello”
    将是结果数组中的第一个值。感谢您的快速回答,请查看我更新的问题。我相信如果键进入一个以上的数字,这可能会给出错误的顺序,因为它会按照它认为的字母顺序对它们进行排序order@OliverRadini是的,这取决于钥匙;这次行动没有涉及太多细节。关键是
    .sort()
    可以显式地施加任何所需的排序。我将扩展答案。