Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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/1/ssh/2.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_Arrays_Object - Fatal编程技术网

Javascript 将一个数组设置为另一个数组使其行为类似于对象,我缺少什么?

Javascript 将一个数组设置为另一个数组使其行为类似于对象,我缺少什么?,javascript,arrays,object,Javascript,Arrays,Object,我已设定: 常数[c,d]=[“h”,“i”] 在浏览器控制台中。它返回undefined 之后,当我键入c时,它返回“h”, 当我输入d时,它返回“I” 在我看来,它就像一个对象,我根据[“h”,“I”]的顺序设置了c和d的值 在过去的9个月里,我一直在学习Javascript。我不知道我错过了什么?为什么会出现这种情况?如果试图将一个数组设置为与另一个数组相等,则只需: const c = ["h", "i"]; const d = c; 您使用的是destructuring,这是一个很好

我已设定:

常数[c,d]=[“h”,“i”]

在浏览器控制台中。它返回undefined

之后,当我键入c时,它返回“h”, 当我输入d时,它返回“I”

在我看来,它就像一个对象,我根据[“h”,“I”]的顺序设置了cd的值


在过去的9个月里,我一直在学习Javascript。我不知道我错过了什么?为什么会出现这种情况?

如果试图将一个数组设置为与另一个数组相等,则只需:

const c = ["h", "i"];
const d = c;

您使用的是destructuring,这是一个很好的功能,可以直接获得对对象或数组嵌套属性的命名访问:

const car= {
    color: 'blue',
    power: '120HP',
    brand: 'an awesome one'
};

// Object Destructuring
const { colorOfCar, powerOfCar, brandOfCar} = car;
然后,您可以直接使用这些变量名中的每一个。 它或多或少地缩写为:

const colorOfCar = car.color;
const powerOfCar = car.power;
const brandOfCar = car.brand;
希望对你有帮助

更新: 可以通过以下方式对阵列进行分解:

const rgb = [255, 200, 0];

// Array Destructuring
const [red, green, blue] = rgb;
简称:

const red = rgb[0];
const green= rgb[1];
const blue= rgb[2];

您正在使用分解分配。然后变量c=arr[0],d=arr[1]

如果需要复制阵列,请执行以下操作:

const newArr = arr.concat();
此声明

const [c, d ] = ["h", "i"]
是,它不是数组赋值。它读起来不像

“具有元素c和d的数组将被分配h的值 而我“

但它的意思是

“值为h和i的数组被分解为 变量分别称为c和d。”

因此,结果不是数组,也不是对象,而是两个变量。您可以使用babeljs.io检查代码的等效项:

"use strict";

var c = "h",
    d = "i";

您正在使用,实际上并没有将一个数组设置为另一个数组。您可以发明所需的所有代码编写,但不要期望它们能够匹配任何语言的语法规则,甚至JavaScription(为什么需要将其输入控制台?)我在学习react钩子,我在“useState”中看到了这一点,在和讲师创建新钩子时也看到了这一点。我被这个“const[state,setstate]=useState(false)”弄糊涂了;这也适用于数组吗?是的!我会更新答案的。嗨,詹姆斯,谢谢你的回答。请告诉我你做了什么以及为什么它会解决这个问题嗨,我只是演示了如何将一个数组设置为与另一个数组相等(而不使其表现为对象)正如你在问题标题中提到的。太好了。请用这个解释编辑你的答案。