获取数组的前3个元素,然后是另一个3元素,然后是javascript中的另一个3元素
嗨,我有一个9元素的数组-获取数组的前3个元素,然后是另一个3元素,然后是javascript中的另一个3元素,javascript,Javascript,嗨,我有一个9元素的数组- array=['a','b','c','d','e','f','g','h','i']。 我有一个与条件匹配的变量 data==='test' ? data1 = array.slice(0,3) : data==='test1' ? data1 = array.slice(3,6) : data==='test2' ? data1 = array.slice(6,9) :
array=['a','b','c','d','e','f','g','h','i']
。
我有一个与条件匹配的变量
data==='test' ?
data1 = array.slice(0,3) :
data==='test1' ?
data1 = array.slice(3,6) :
data==='test2' ?
data1 = array.slice(6,9) :
data1 = data;
如果数据与测试匹配,那么数据1应该是['a'、'b'、'c']
。
如果数据与test1匹配,那么data1应该是['d','e','f']
。
如果数据与test1匹配,那么data1应该是['g','h','i']
如果数据相当于test,但在test1和test2中没有得到正确的数据,那么我就正确地得到了data1。在test1和test2中都没有
有没有办法做到这一点?可以使用
开关
语句?//为了更好的易读性
常量数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i']
常量数据='test1';
让数据1;
交换机(数据){
案例“测试”:
data1=array.slice(0,3);
打破
案例“test1”:
data1=array.slice(3,6);
打破
案例“测试2”:
data1=array.slice(6,9);
打破
违约:
数据1=数据;
打破
}
我会使用
测试
字符串后面的数字作为乘法器,以获得所需的部分
const data=['a','b','c','d','e','f','g','h','i'];
log(getDataPart('test');
log(getDataPart('test1');
log(getDataPart('test2');
函数getDataPart(str){
//获取“测试”后面的数字,回退到“0”
常数n=(str.length
常量数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i']
常量数据='test2';
常量data1=data=='test'?数组.slice(0,3):(data=='test1'?数组.slice(3,6):
(data=='test2'?array.slice(6,9):data));
console.log(data1);
您可以在对象中存储位置,并使用数据值获取位置:
const data=“test1”;
常量数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i']
常数位置={
“测试”:[0,3],
“测试1”:[3,6],
“测试2”:[6,9]
}
const data1=array.slice(…pos[data]);
console.log(data1);
您只分配一次数据,因此它的值不会改变,您可以将其转换为函数,每次都有不同的返回值,或者为数组创建一个自定义getter,它显示您的代码已经工作了……当数据==='test
时,data1
设置为['a','b','c']
,当数据===“test1
”时,则数据1
设置为['d'、'e'、'f']
,等等。问题是询问数组元素的动态引用,而实际上不多次调用三元运算符