如何使用Array.filter()以2块为单位返回项目?

时间:2015-11-20 11:41:06

标签: javascript arrays

考虑这个数组:

var items = [
  'Item 1',
  'Item 2',
  'Item 3',
  'Item 4',
  'Item 5',
  'Item 6',
  'Item 7',
  'Item 8',
  'Item 9',
  'Item 10',
];

我正在努力解决,我如何过滤数组,以便我可以在2的块中返回类似下面的内容:

Item 1, Item 2, Item 5, Item 6, Item 9, Item 10

我应该抓住2个项目,跳过2个项目并重复。

我尝试使用Array.map()来完成这项工作,但我无法理解实现这种效果所需的逻辑。

console.clear();

var items = [
  'Item 1',
  'Item 2',
  'Item 3',
  'Item 4',
  'Item 5',
  'Item 6',
  'Item 7',
  'Item 8',
  'Item 9',
  'Item 10',
];

var selected = items.filter(function(item, index) {
  return index % 2; // Obviously not what I want.
});

console.log(selected);

非常感谢任何帮助或指导。

注意:我确实使用2个不同的阵列来解决这个问题,但我想尝试在一个固化的解决方案中解决它。

2 个答案:

答案 0 :(得分:5)

如果你看一下这个模式,它就表明你想要选择那些可以被4和下一个完全整除的元素。

0  1
4  5
8  9
12 13
16 17
...

filterindex一起使用,除以4后的余数为0或1。

即。使用

return (index % 4) < 2;

<强>演示

var items = [
  'Item 1',
  'Item 2',
  'Item 3',
  'Item 4',
  'Item 5',
  'Item 6',
  'Item 7',
  'Item 8',
  'Item 9',
  'Item 10',
];

var filtered = items.filter(function(e, index) {
  return (index % 4) < 2;
});
console.log(filtered);

答案 1 :(得分:2)

将其用作选择功能:

object missing = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();

Microsoft.Office.Interop.Word.Document aDoc = null;

DateTime today = DateTime.Now;

object readOnly = true;
object inVisible = true;

aDoc = wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref inVisible, ref missing, ref missing, ref missing, ref missing);

this.FindAndReplace(wordApp, "##formkodu##", TextBox1.Text);
this.FindAndReplace(wordApp, "##sirketadi##", DropDownList11.SelectedItem.Text);
this.FindAndReplace(wordApp, "##il##", ddliller.SelectedItem.Text);
this.FindAndReplace(wordApp, "##isletme##", ddlisletmeler.SelectedItem.Text);
this.FindAndReplace(wordApp, "##yüklenicifirma##", ddlyükleniciler.SelectedItem.Text);           


wordApp.Visible = false;
aDoc.Activate();

aDoc.SaveAs(ref saveAs, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

wordApp.Quit(ref missing, ref missing, ref missing);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(aDoc);

通过这种方式,您可以决定抓取和丢弃的元素数量