所以我觉得这应该很容易,但是我无法弄清楚。
为简化起见,我需要动态生成一个数组。然后,我需要我的代码基于该数组的中间部分来构建对象列表。
array = [a, b, c, d];
start = array[0];
finish = array[array.length - 1];
middle = [
{ middle: array[1] },
{ middle: array[2] }
]
我需要此属性是动态的,因此由于数组长度未设置为固定值,因此无法对中间值进行硬编码。我以为我需要一个loop
函数来遍历数组,但是除了在DOM中创建一个列表之外,我从没有用它。我觉得我想得太多了,因为这应该很容易...尽管我所做的一切都会破坏我的代码。
我最近的尝试是:
middle = [
for (i = 1; i < array.length - 2; i++) {
return { middle: array[i] };
}
]
我想我明白为什么它不起作用。它只是返回我想要的东西,但我认为价值永远不会被存储。
答案 0 :(得分:3)
只需通过映射到目标格式来调整@chazsolo对预期输出的回答即可。
const array = [1,2,3,4,5];
const middle = array.slice(1, -1).map(item => ({middle: item}));
console.log(middle);
答案 1 :(得分:1)
使用slice
来获取您要查找的值
const array = [1,2,3,4,5];
const middle = array.slice(1, -1);
console.log(middle);
这将返回一个新数组,其中包含除第一个和最后一个值之外的所有值。
如果您不使用或无法使用map
,那么仍然可以使用for
循环:
const array = [1,2,3,4,5];
const middle = array.slice(1, -1);
for (let i = 0; i < middle.length; i++) {
middle[i] = {
middle: middle[i]
};
}
console.log(middle);
答案 2 :(得分:0)
定义一个数组,然后将要插入的任何内容推入数组。
let array = ['a', 'b', 'c', 'd']
let middles = []
for (i = 1; i < array.length - 1; i++) {
middles.push({ middle: array[i] })
}
console.log(middles)
如果您想了解更多信息,请选中Array