Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 - Fatal编程技术网

Javascript 基于现有对象/数组创建空对象/数组

Javascript 基于现有对象/数组创建空对象/数组,javascript,Javascript,我正在编写一个函数,它以对象或数组作为参数,我想创建一个新的空副本,并用原始对象的转换数据填充它 我想知道是否有一种方法可以简单地创建这个新对象/数组,而不必测试对象是什么类型并采取适当的行动 目前的“漫长”道路是: const transf = (thing) => { if (typeof(thing) === 'array') { const new = [] } else { const new = {} } } 我希望有一种很好的“内置”方式,我可

我正在编写一个函数,它以对象或数组作为参数,我想创建一个新的空副本,并用原始对象的转换数据填充它

我想知道是否有一种方法可以简单地创建这个新对象/数组,而不必测试对象是什么类型并采取适当的行动

目前的“漫长”道路是:

const transf = (thing) => {
  if (typeof(thing) === 'array') {
    const new = []
  }  else {
    const new = {}
  }
}
我希望有一种很好的“内置”方式,我可以做如下事情:

const transf = (thing) => {
  const new = thing.emptyCopy()
}
我已经研究了
对象。创建
但总是会生成
对象
(即使
原型
数组
),并且
类型的
返回一个字符串,不能与例如
新建
等一起使用


有没有简写的方法可以做到这一点,还是我运气不好?

你可以使用
东西的
构造函数
属性。不要使用
new
作为变量名

const transf = (thing) => {
  const newelm = new thing.constructor()
}
演示:

const transf=(事物)=>{
返回新事物。构造函数()
}
console.log(transf(['arra']))

console.log(transf({key:'value}))
使用
构造函数
方法。@raina77ow是的,虽然如果只考虑
对象
数组
,这并不重要tanks-是的-不确定我为什么在那里使用
新建
@如果你对答案感到满意,就考虑接受答案。